Как выполнить итерацию по списку массивов bean-компонентов в JSP, используя теги struts2

Мой JSP получает ArrayList bean-компонентов от действия Struts2.

Я хочу перебирать их и печатать каждый компонент и его свойства в строке.

Как это сделать с помощью тегов Struts2?


person Anand    schedule 21.02.2010    source источник


Ответы (5)


Используйте тег <s:iterator>.

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

Обзор всех тегов можно найти в их собственной документации: ссылка на тег. Добавить в закладки.

person BalusC    schedule 21.02.2010
comment
что, если каждый элемент arraylist является объектом, значения которого я хочу использовать? - person Shashank; 31.07.2015

Использование JSTL:

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

Вам нужно будет добавить JSTL в путь к классам, потому что он не поставляется со Struts, но он должен работать. Конечно, использование собственного тега struts (как показано BalusC) является лучшим вариантом.

person Bozho    schedule 21.02.2010
comment
@lakshmanan Я не думаю, что есть проблема использовать JSTL со struts2 - person Bozho; 21.02.2010

Чтобы сделать это с помощью struts2, вам нужен итератор:

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

Но я предлагаю использовать displaytag: http://www.displaytag.org/1.2/ Только с 1 row он описывает все компоненты, и вы также можете выполнять сортировку и экспорт. Вот пример использования:

<display:table name="collection" />

и он генерирует таблицу, thead и tbody.

person Nicola Baldissin    schedule 30.08.2012

Вот рабочий пример (проект Netbeans 6.9), иллюстрирующий, как перебирать массив или список объектов.

Кроме того, как отправить форму, чтобы список объектов воссоздавался при отправке.

Просто разрешите ссылки и приступайте к работе.

person coding_idiot    schedule 03.02.2011

Я сделал что-то подобное в своем базовом приложении.

Здесь 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>
person Rohan    schedule 15.04.2013