Struts2迭代器标签

时间:2018-06-29 07:10:48

标签: struts2

我正在将应用程序从Struts-1迁移到Struts-2。

以下代码使用Struts-1迭代标签对集合“ myFormBeanCollection”进行迭代。

myFormBean是表单bean,      myFormBeanCollection是myFormBean的一个属性,类型为ArrayList,此列表包含类型为“ com.xyz.SomeClass”的对象。

接下来是一个scriptlet元素,然后是一些bean:write ...

在scriptlet代码中:“ com.xyz.SomeClass”中定义了getDate()方法。

    <logic:iterate name="myFormBean" property= "myFormBeanCollection" id="someId" type="com.xyz.SomeClass">
    <%
      String startDate = dateFormat.format(someId.getDate());
    %>

    <td width="13%" align="center">&nbsp;
       <%=startDate%>
    </td>

    <td width="8%" align="center">
       <bean:write name="someId" property="prop_1" />
    </td>
   </logic:iterate>

如何将该特定代码迁移到Struts-2。

我尝试使用Struts2迭代器标记。

但是无法成功编写脚本。 不确定如何在脚本中调用“ getDate()”方法,就像上面代码(Struts-1)那样。

    <s:iterator value="myFormBean.myFormBeanCollection">
    <%
        String startDate = dateFormat.format(""); // Not sure on how to call "getDate()" method as how it was done in above code(Struts-1).
    %>
    <s:property value="countryName" />,
    </s:iterator>

任何帮助将不胜感激。

谢谢, 苏尼尔

1 个答案:

答案 0 :(得分:0)

您不会使用the <s:date /> tag

<s:date name="date" format="whatever" />

为了公平起见,您也不需要在原始版本中使用scriptlet-在JSP中用Java做的工作越少越好:仅坚持HTML和标记。

与其以完全相同的方式盲目重写,不如尝试进行结构和技术改进。