Grails 中 GSP 中的 if 语句
Posted
技术标签:
【中文标题】Grails 中 GSP 中的 if 语句【英文标题】:if statements in a GSP in Grails 【发布时间】:2012-08-25 09:43:09 【问题描述】:我在控制器中调用索引方法
def index()
childInstance = Child.get(params.id)
if(childInstance)
System.out.println("CHILD" + childInstance.firstname)
def messages = currentUserTimeline()
[profileMessages: messages,childInstance:childInstance]
else
def messages = currentUserTimeline()
[profileMessages: messages]
System.out.println("ALL")
在我的gsp页面中
$childInstance.firstname
如果我传递一个 childInstance 这很好,但如果我不传递一个空指针,我会得到 500,有没有办法我可以在 gsp 中执行 if 语句,这样我就可以做到这一点
if(childInstance)
$childInstance.firstname
else
All
【问题讨论】:
【参考方案1】:您可以使用g:if
、g:elseif
和g:else
:
<g:if test="$name == 'roberto'">
Hello Roberto!
</g:if>
<g:elseif test="$name == 'olga'">
Hello Olga!
</g:elseif>
<g:else>
Hello unknown person!
</g:else>
【讨论】:
【参考方案2】:比<g:if>
更简洁的解决方案是使用安全取消引用运算符?
$childInstance?.firstName
如果childInstance
不为空,则显示名字,如果为空,则不显示任何内容。
【讨论】:
【参考方案3】:<g:if test="$ childInstance ">
$ childInstance.firstName
</g:if>
【讨论】:
以上是关于Grails 中 GSP 中的 if 语句的主要内容,如果未能解决你的问题,请参考以下文章
如何从 grails 视图文件夹中的 create.gsp 表单中隐藏几个字段?