2014-04-14 161 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>