GSP:检查模型(变量)是不是为空不工作
Posted
技术标签:
【中文标题】GSP:检查模型(变量)是不是为空不工作【英文标题】:GSP: check if model (variable) is empty not workingGSP:检查模型(变量)是否为空不工作 【发布时间】:2011-09-21 06:39:32 【问题描述】:我是 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>
循环正常工作,但检查空虚不正常。我试过“not empty”,“!empty”,......不知道怎么了!任何帮助都将不胜感激! :-)
【问题讨论】:
【参考方案1】:做到这一点的“最时髦”的方法是
<g:if test="$questionList101">
在 Groovy 中,空对象和空集合被强制为 false。请在此处查看有关 Groovy 真相的文档:http://groovy-lang.org/semantics.html#Groovy-Truth
【讨论】:
【参考方案2】:在 GSP 中,您可以在 $ 表达式中获得完整的常规支持。如果需要,您可以对对象进行适当的方法调用。试试这个:
<g:if test="$questionsList101 != null && !questionsList101.isEmpty()">
【讨论】:
我尝试了第一个,它只适用于非空列表 - 有趣。否则,我会收到以下错误消息:处理 GroovyPageView 时出错:执行标签时出错 看起来你只需要一个空检查。我会更新我的答案。 嗯,如果您使用的是 Grails,那么用 Groovy 的方式来编写它怎么样? $! questionsList101?.isEmpty()(注意空检查?) 谢谢。我知道有更好的方法,但我有点脑子有问题,我想我应该给他一些快速奏效的东西。 然而,经过进一步调查,$! questionsList101?.isEmpty() 似乎没有处理空情况。我现在要把它放回不那么时髦的方式......以上是关于GSP:检查模型(变量)是不是为空不工作的主要内容,如果未能解决你的问题,请参考以下文章