我是从Struts 1迁移到Struts 2.我不知道以下struts1标记的等效Struts2标记
<logic:equal value="1234" name="custDetail" property="ackMsg">
<% String str = valid %>
</logic:equal>
请求中设置的custDetail
属性的值应为1234.如果是,则脚本变量str
已分配有效&#39;作为它的价值。什么是使用Struts2标签的等效JSP代码
答案 0 :(得分:4)
Struts 1:
<logic:equal value="1234" name="custDetail" property="ackMsg">
<% String str = "valid" %>
</logic:equal>
Struts 2:
<s:if test="custDetail.ackMsg == '1234'">
<% String str = "valid" %>
</s:if>
Struts 2重构以删除scriptlet:
<s:if test="custDetail.ackMsg == '1234'">
<s:set var="str" value="%{'valid'}"/>
</s:if>
,稍后获取str
值:
<s:property value="%{#str}" />
答案 1 :(得分:0)
请求中设置的
custDetail
属性
然后你应该从上下文映射请求。 OGNL在值堆栈中搜索键。并且它不包含请求属性。您应该从上下文中引用request
以访问请求属性。
<s:if test="#request.custDetail.ackMsg == '1234'">
...
</s:if>
你还应该根据bean规范为ackMsg
提供getter和setter。
答案 2 :(得分:0)
struts2动作标签或多或少类似于JSTL标签。你也可以用那个
<c:if test="custDetail.ackMsg == '1234'">
<c:set var="str" value="%{'valid'}"/>
</c:if>