Подтвердить что ты не робот

GSP: проверьте, что модель (переменная) пуста, не работает

Im new для grails (1.3.7) и Im пытается заставить что-то работать:

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

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

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

allQuestions-objects - "def allQuestions..", содержащие объекты-объекты (объект базы данных)

на моем 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>

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

4b9b3361

Ответ 1

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

<g:if test="${questionsList101 != null && !questionsList101.isEmpty()}">

Ответ 2

"Самый большой" способ сделать это -

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

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