GSP: проверить, если модель (переменная) пуста не работает - PullRequest
15 голосов
/ 23 июня 2011

Я новичок в Grails (1.3.7) и пытаюсь заставить что-то работать:

В моем контроллере я возвращаю несколько списков, к которым я хочу получить доступ в моем gsp. Доступ работает, но я хочу получить к ним доступ, только если они не пусты. Проверка, является ли список пустым или нет, не работает.

Вот что возвращает мой контроллер:

return new ModelAndView("/questions/questions", [ questionsList101 : allQuestions101, questionsList102 : allQuestions102, ... ])

allQuestions-объекты - это "def allQuestions ..", содержащие Вопросы-Объекты (Database-Object)

в моем gsp сейчас я пробую следующее:

<g:if test="${!empty questionsList101}">  101:<br/>
<g:each in="${questionsList101}" var="elem" status="i">
  <g:checkBox name="${questionsList101[i].id}" value="${questionsList101[i].id}"/>${questionsList101[i].id}<br/>
</g:each>
<br/>
</g:if>

цикл работает, проверка на пустоту - нет. Я пытался с "не пусто", "! Пусто", ... не знаю, что случилось! любая помощь приветствуется! : -)

Ответы [ 2 ]

35 голосов
/ 24 июня 2011

Самый "отличный" способ сделать это:

<g:if test="${questionList101}">

В Groovy нулевые объекты и пустые коллекции приводятся к значению false.См. Документацию по Groovy True здесь: http://groovy -lang.org / semantics.html # Groovy-Truth

14 голосов
/ 23 июня 2011

В GSP у вас есть полная поддержка groovy в выражении $ {}.Вы можете делать правильные вызовы методов для ваших объектов, если хотите.Попробуйте это:

<g:if test="${questionsList101 != null && !questionsList101.isEmpty()}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...