2014-04-14 102 views
0

我从Struts的1迁移到Struts的2。我不知道什么是以下struts1的标签什么是以下Struts 1标签的等效Struts 2标签?

<logic:equal value="1234" name="custDetail" property="ackMsg"> 
     <% String str = valid %> 
</logic:equal> 

custDetail属性,该属性在请求中设置的值应为1234等效Struts2的标签。如果是这样,脚本变量str被赋值为“有效”。什么是使用Struts2的标签的等效JSP代码

回答

3

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}" /> 
0

是在请求

设置那么你应该映射从上下文请求custDetail属性。 OGNL在值堆栈中搜索键。它不包含请求属性。您应该从上下文中引用request以访问请求属性。

<s:if test="#request.custDetail.ackMsg == '1234'"> 
    ... 
</s:if> 

根据bean规范,您还应该为ackMsg提供getter和setter。

0

struts2动作标签或多或少类似于JSTL标签。您也可以使用

<c:if test="custDetail.ackMsg == '1234'"> 
    <c:set var="str" value="%{'valid'}"/> 
</c:if>