gpt4 book ai didi

javascript - <script> 中的 Struts html 标记

转载 作者:行者123 更新时间:2023-11-30 08:49:34 24 4
gpt4 key购买 nike

我知道这是一个非常菜鸟和愚蠢的问题,但我需要帮助。尝试了几个主题,但都没有用。

所以我试图将在 Struts2(java) 中创建的列表传递到 javascript 中以使用突出显示绘制图表。我已经阅读了几篇文章并提出了这个:

$(function drawList() {
var list = [
<c:forEach items="${listFromJava}" var="alistFromJava">
{itemName: "${alistFromJava.attribute}"},
</c:forEach>
];

但是它永远不会起作用,并且总是以:静态属性必须是字符串文字,指定表达式是非法的。

如果我尝试:

list = '<s:property value="listFromJava"/>

然后它只返回引用。

任何建议表示赞赏。提前致谢。

最佳答案

为了避免在谷歌搜索时造成混淆:

<c:forEach is JSTL

${listFromJava} is EL

<s:property is STRUTS2 UI TAG

listFromJava (or %{listFromJava} ") is OGNL

取代 JSTL 的 forEach 的 Struts2 标签is <s:iterator> .

您的函数可以像这样在纯 Struts2 中重写:

$(function drawList() {
var list = [
<s:iterator value="listFromJava" >
{itemName: '<s:property escapeJavascript="true" value="attribute"/>'},
</s:iterator>
];
});

要防止最后一个元素有不需要的逗号,请使用 <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>
];
});

编辑:添加了防止 javascript 注入(inject)问题所需的转义 (escapeJavascript="true")。

关于javascript - &lt;script&gt; 中的 Struts html 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19107492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com