Grails GSP Safe Navigation Operator 会防范 "JSONObject$Null" 吗?

Will Grails GSP Safe Navigation Operator protect against "JSONObject$Null"?

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

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

其中 'report' 成员有时可以有一个空值。我有时会在该页面上收到此异常...

 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"?

Groovy 中的空安全运算符 ? 无助于避免此错误,因为 NULLJSONObject.NULL 不同。后者是代表 NULL 值的实际对象,实际上并不是 NULL.

但是你可以这样做:

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