GSP:检查模型(变量)是否为空无效

时间:2011-06-23 14:11:51

标签: grails groovy model gsp

我是grails(1.3.7)的新手,我试图让某些东西起作用:

在我的控制器中,我回放了一些我希望在gsp中访问的列表。访问作品,但我只想访问它们,如果它们不是空的。检查列表是否为空不起作用。

这是我的控制器回馈的内容:

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

allQuestions-objects是“def allQuestions ..”,包含Questions-Objects(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>

循环正在工作,空虚的检查不是。我尝试了“不空”,“!空”,......不知道什么是错的!任何帮助是apreciated! : - )

2 个答案:

答案 0 :(得分:35)

“最狂野”的方法是

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

在Groovy中,空对象和空集合被强制为false。请在此处查看有关Groovy真相的文档:http://groovy-lang.org/semantics.html#Groovy-Truth

答案 1 :(得分:14)

在GSP中,您在$ {}表达式中拥有完整的常规支持。如果需要,可以对对象进行适当的方法调用。试试这个:

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