Поддерживает ли Grails использование "forEach" из основного тега JSTL на странице gsp? - PullRequest
2 голосов
/ 21 июля 2011

У меня была проблема при написании страницы gsp с использованием grails. Страница прекрасно работает с другими тегами из основной библиотеки тегов JSTL, такими как c: if, c: when. Но я не мог заставить его работать, когда я использовал c: forEach для зацикливания. Ниже приведены фрагменты кода:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
......
<c:forEach var="foo" items="${fooList}" varStatus="counter">
    ${counter.count}, ${foo}
</c:forEach>

Ошибки Grails показывают, что неявный счетчик объектов равен нулю.

Error 500: null
Servlet: 
URI: 
Exception Message: Cannot get property 'count' on null object 
Caused by: Error evaluating expression [counter.count] on line [16]: Cannot get property 'count' on null object

В документации Grails говорится, что теги JSP поддерживаются.

== >> "http://grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.3.6 Использование библиотек тегов JSP"

Но я просто не мог заставить работать c: forEach, который прекрасно работает как страница jsp вместо суффикса gsp.

Grails Версия: 1.37 JDK: 1.6.0_22

Ответы [ 2 ]

8 голосов
/ 21 июля 2011

Гораздо лучше использовать стандартные GSP для каждого:

<g:each var="foo" in="${fooList}" status="counter">
    ${counter.count}, ${foo}
</g:each>
2 голосов
/ 24 декабря 2013

Попробуйте вместо этого:

<g:each var="foo" in="${fooList}" status="counter">
    ${counter}, ${foo}
</g:each>

У меня была такая же проблема ... Затем я выяснил, что для отображения номера элемента было $ {counter} вместо $ {counter.count}.

...