如何使用struts2标记迭代JSP中的数组bean列表

时间:2010-02-21 10:31:38

标签: java jsp struts2

我的JSP从Struts2操作中收到ArrayList个bean。

我想迭代它们并在每行打印每个bean及其属性。

如何使用Struts2标签执行此操作?

5 个答案:

答案 0 :(得分:6)

使用<s:iterator>标记。

<s:iterator value="beans">
     <p>Property foo: <s:property name="foo" /></p>
     <p>Property bar: <s:property name="bar" /></p>
</s:iterator>

所有标签的概述可以在他们自己的文档中找到:tag reference。为它添加书签。

答案 1 :(得分:2)

使用JSTL:

<c:forEach items="${list}" var="item">
    <c:out value="${item.property}" />
</c:forEach>

您必须将JSTL添加到类路径中,因为它不随Struts一起提供,但它可以运行。当然,使用struts自己的标签(如BalusC所示)是一个更好的选择。

答案 2 :(得分:1)

要使用struts2执行此操作,您需要使用迭代器:

<s:iterator value="collection">
Describe object
</s:iterator>

但我建议使用displaytag:http://www.displaytag.org/1.2/ 只有一行它描述了所有bean,你也可以进行排序和导出。 这是一个使用示例:

<display:table name="collection" />

它生成一个表,一个thead和tbody。

答案 3 :(得分:0)

Here是一个工作示例(Netbeans 6.9项目),说明如何迭代数组或对象列表。

此外,如何提交表单,以便在提交时重新创建对象列表。

只需解析引用并开始使用。

答案 4 :(得分:0)

我在基本应用程序中做了类似的事情。

此处 searchForm是bean ArrayList是结果

<logic:present name="searchForm" property="results">
    <bean:size id="size" name="searchForm" property="results"/>
   <logic:greaterThan name="size" value="0">
       <logic:iterate id="res" name="searchForm" property="results">
         <p>
         <bean:write name="res" property="firstname" />
         <bean:write name="res" property="lastname" />
         </p>
       </logic:iterate>
   </logic:greaterThan>
</logic:present>