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}