Grails 检查视图中的变量是否为null
以下是Grails 检查视图中的变量是否为null,grails,groovy,gsp,Grails,Groovy,Gsp,以下是person.gsp <g:set var="res" value="${ Person.get(personInstance.id) }" /> ${ res.result } 如何从视图本身验证结果是否为null 注意:我不想从控制器执行此验证 更新 我能帮你吗 <g:if........${ Person.get(personInstance.id) } NOT EQUAL TO NULL THEN <
person.gsp
<g:set var="res" value="${ Person.get(personInstance.id) }" />
${ res.result }
如何从视图
本身验证结果
是否为null
注意:我不想从控制器执行此验证
更新
我能帮你吗
<g:if........${ Person.get(personInstance.id) } NOT EQUAL TO NULL THEN
<g:set var="res" value="${ Person.get(personInstance.id) }" />
${ res.result }
${res.result}
这是有效的。记住,在Groovy中有一个安全导航操作符-?。
如果键入:
${res?.result}
如果res为空,它将避免NPE并简单地停止进一步的计算。在控制器中调用Person.get(id)并在与视图关联的模型中设置结果也是一种很好的做法。它将允许您在不改变视图的情况下更改控制器行为(例如,从缓存而不是数据库读取)。“鉴于这一非常糟糕的前提,如何使其稍微不那么糟糕?”这不完全是堆栈溢出任务陈述或规范问题……至少先使用集合,然后进行检查。即使getter很可能是从hibernate缓存到那里的,也要干燥
<g:if test="${Person.get(personInstance.id) != null}">
<g:set var="res" value="${ Person.get(personInstance.id) }" />
${ res.result }
</g:if>
${res?.result}