Мой JSP получает ArrayList
bean-компонентов от действия Struts2.
Я хочу перебирать их и печатать каждый компонент и его свойства в строке.
Как это сделать с помощью тегов Struts2?
Мой JSP получает ArrayList
bean-компонентов от действия Struts2.
Я хочу перебирать их и печатать каждый компонент и его свойства в строке.
Как это сделать с помощью тегов Struts2?
Используйте тег <s:iterator>
.
<s:iterator value="beans">
<p>Property foo: <s:property name="foo" /></p>
<p>Property bar: <s:property name="bar" /></p>
</s:iterator>
Обзор всех тегов можно найти в их собственной документации: ссылка на тег а>. Добавить в закладки.
Использование JSTL:
<c:forEach items="${list}" var="item">
<c:out value="${item.property}" />
</c:forEach>
Вам нужно будет добавить JSTL в путь к классам, потому что он не поставляется со Struts, но он должен работать. Конечно, использование собственного тега struts (как показано BalusC) является лучшим вариантом.
Чтобы сделать это с помощью struts2, вам нужен итератор:
<s:iterator value="collection">
Describe object
</s:iterator>
Но я предлагаю использовать displaytag: http://www.displaytag.org/1.2/ Только с 1 row он описывает все компоненты, и вы также можете выполнять сортировку и экспорт. Вот пример использования:
<display:table name="collection" />
и он генерирует таблицу, thead и tbody.
Вот рабочий пример (проект Netbeans 6.9), иллюстрирующий, как перебирать массив или список объектов.
Кроме того, как отправить форму, чтобы список объектов воссоздавался при отправке.
Просто разрешите ссылки и приступайте к работе.
Я сделал что-то подобное в своем базовом приложении.
Здесь 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>