use*_*803 1 html javascript jsp struts2 ognl
我知道这是一个非常愚蠢的问题,但是我需要帮助。尝试了几个主题,但都无济于事。
因此,我试图将在Struts2(java)中创建的列表传递到javascript中以使用高光绘制图表。我已经阅读了几篇文章,并提出了以下建议:
$(function drawList() {
var list = [
<c:forEach items="${listFromJava}" var="alistFromJava">
{itemName: "${alistFromJava.attribute}"},
</c:forEach>
];
Run Code Online (Sandbox Code Playgroud)
但是,它永远不起作用,并且总是以以下形式结尾:静态属性必须是String文字,指定表达式是非法的。
如果我尝试:
list = '<s:property value="listFromJava"/>
Run Code Online (Sandbox Code Playgroud)
然后它仅返回引用。
任何建议表示赞赏。提前致谢。
为了避免在使用Google搜索时造成混乱,请执行以下操作:
listFromJava(或%{listFromJava}“)是OGNL
替换JSTL的Struts2标记forEach 为<s:iterator>。
您的函数可以在纯Struts2中重写,如下所示:
$(function drawList() {
var list = [
<s:iterator value="listFromJava" >
{itemName: '<s:property escapeJavascript="true" value="attribute"/>'},
</s:iterator>
];
});
Run Code Online (Sandbox Code Playgroud)
为防止最后一个元素具有不想要的逗号,请使用 <s:if>
$(function drawList() {
var list = [
<s:iterator value="listFromJava" status="stat">
<s:if test="#stat.index>0">,</s:if>
{itemName: '<s:property escapeJavascript="true" value="attribute"/>'}
</s:iterator>
];
});
Run Code Online (Sandbox Code Playgroud)
编辑:添加了防止javascript注入问题(escapeJavascript="true")所需的转义。
| 归档时间: |
|
| 查看次数: |
5326 次 |
| 最近记录: |