【问题标题】:What is the equivalent Struts 2 tag for the following Struts 1 tag?以下 Struts 1 标签的等效 Struts 2 标签是什么?
【发布时间】:2014-04-14 07:21:55
【问题描述】:

我正在从 Struts 1 迁移到 Struts 2。我不知道以下 struts1 标记的等效 Struts2 标记是什么

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

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

【问题讨论】:

    标签: jsp struts2 struts-1


    【解决方案1】:

    支柱 1:

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

    支柱 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}" /> 
    

    【讨论】:

      【解决方案2】:

      请求中设置的custDetail属性

      然后你应该从上下文映射请求。 OGNL 在值堆栈中搜索键。而且它不包含请求属性。您应该从上下文中引用request 以访问请求属性。

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

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

      【讨论】:

        【解决方案3】:

        struts2 动作标记或多或少类似于 JSTL 标记。你也可以使用它

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多