以下Struts 1标记的等效Struts 2标记是什么?

时间:2014-04-14 07:21:56

标签: jsp struts2 struts-1

我是从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代码

3 个答案:

答案 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>