【问题标题】:JSP Expression works in JSTL tags but not in Struts 2 tagsJSP 表达式在 JSTL 标记中有效,但在 Struts 2 标记中无效
【发布时间】:2014-04-05 07:03:06
【问题描述】:

我在我的项目中使用 JSTL 和 Struts 2。我正在尝试使用 JSTL 和 Struts 2 标记在范围内设置一个值,如下所示:

<div id="id1"></div>
<div id="id2"></div>
<%               
   int b=10;
 %>
<c:set var="test2" value="<%= b %>"/>
<s:set var="test3" value=" <%=b%>" />
<script>
 document.getElementById("id1").innerHTML="${test2}"; //10
 document.getElementById("id2").innerHTML="${test3}"; //nothing is displayed.
</script>

输出仅为10。我的疑问是为什么表达式&lt;%= b %&gt;&lt;c:set&gt; 标签中有效,而在&lt;s:set&gt; 标签中无效?

【问题讨论】:

    标签: jsp struts2 jstl scriptlet struts-tags


    【解决方案1】:

    Struts 标签不允许在标签的属性中使用 scriptlects。不过你可以试试

    <s:set var="test3"><%=b%></s:set>
    

    【讨论】:

    • JSTL 标签 允许在标签属性中使用 scriptlet,但是为什么 不允许,有什么设计问题吗?
    • 可能是一种设计,它只接受 OGNL 表达式。
    猜你喜欢
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 2022-07-01
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    • 2021-09-28
    相关资源
    最近更新 更多