Struts forEach тег не перебирает ArrayList - PullRequest
0 голосов
/ 24 августа 2009

У меня есть код! Код выглядит так:

<c:forEach var="element" items="%{serviceList.getServices()}">
        <p>Hello!</p>
</c:forEach>

"serviceList" - это bean-компонент с методом getServices (). getServices () возвращает ArrayList, так что я, естественно, предполагал, что приведенный выше код возьмет массив и проведет по нему все элементы списка, помещая каждый элемент списка в переменную «element».

Не так! Когда я просматриваю страницу, Hello распечатывается один раз (размер getServices () равен 2, и я могу показать это напрямую, распечатав его на странице.

Сам тег работает:

<c:forEach begin="1" end="10">Hello, World!<br></c:forEach>

Распечатывает то, что вы ожидаете. Так что это должно быть связано с предметами, которые я передаю. Любая помощь?

О, и это с использованием JSTL 1.1.2, Struts 2.1.6 и последней версии Java.

Ответы [ 2 ]

4 голосов
/ 24 августа 2009

У вас есть опечатка, вы должны использовать ${variable name} вот так:

<c:forEach var="element" items="${serviceList.services}">
  <p>Hello!</p>
</c:forEach>

И тогда поведение будет таким, как вы ожидаете.

0 голосов
/ 24 августа 2009
${serviceList.services}

Ваш синтаксис языка выражений неверен. Подробности смотрите в части EL спецификации JSP 2.1 .

...