Grails GSP安全导航操作员是否可以防御“ JSONObject $ Null”?

时间:2018-11-07 18:01:13

标签: json grails groovy operators gsp

在我的Grails GSP中,我有以下代码...

<div class="starshipStatus">${ship.engine.report?.substring(0,40)}... </div> 

其中“报告”成员有时可以具有空值。有时我在该页面上遇到此异常...

 org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: 
 Error executing tag <g:render>: 
 No such property: title for class: 
 org.codehaus.groovy.grails.web.json.JSONObject$Null

该异常源于该行吗?还是安全导航运算符('?')可以防止“ JSONObject $ Null”?

1 个答案:

答案 0 :(得分:1)

Groovy中的空安全操作符?将无法避免此错误,因为NULLJSONObject.NULL不同。后者是一个实际的对象,代表NULL的值,实际上不是NULL

您可以执行以下操作:

<g:if test="${!ship.engine.report.equals(null)}">
...
</g:if>