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

nan*_*no7 16 grails groovy model gsp

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

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

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

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

allQuestions-objects是包含Questions-Objects(Database-Object)的"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>
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*man 36

"最狂野"的做法是

<g:if test="${questionList101}">
Run Code Online (Sandbox Code Playgroud)

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


Jon*_*oth 15

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

<g:if test="${questionsList101 != null && !questionsList101.isEmpty()}">
Run Code Online (Sandbox Code Playgroud)

  • 嗯,如果你使用的是Grails,那么Groovy的写法怎么样呢?$ {!questionsList101?.isEmpty()}(注意nullcheck?) (2认同)