2011-06-23 47 views
14

进出口新的Grails中(1.3.7)和我试着去得到的东西的工作:GSP:检查是否模型(变量)为空不工作

在我的控制,我还给我想几个列表在我的gsp中访问。访问作品,但我只想访问他们,如果他们不是空的。检查列表是否为空不起作用。

这里是我的控制器还给:

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

allQuestions对象是 “高清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> 

该循环正在工作,空的检查不是。我试着用“不空”,“!空”,......不知道什么是错的!任何帮助都是有好处的! :-)

回答

14

在GSP中,您在$ {}表达式中提供了全面的groovy支持。如果你愿意,你可以对你的对象进行适当的方法调用。试试这个:

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

我尝试了第一个,它只适用于非空的列表 - 很有趣。否则,我会收到以下错误消息:处理GroovyPageView时出错:执行标记时出错:无法在空对象上调用方法isEmpty():-)对于其他方法也是如此。我不能调用它们,如果对象为空 - 非常有趣.... – nano7

+0

看起来你只需要一个空检查然后。我会更新我的答案。 –

+0

谢谢!这完美的作品! :-) – nano7