Защитит ли оператор безопасной навигации Grails GSP от "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"?
1 ответ
Решение
Нулевой безопасный оператор ?
в Groovy не поможет избежать этой ошибки, потому что NULL
это не то же самое, что JSONObject.NULL
, Последний является реальным объектом, который представляет ценность NULL
и не на самом деле NULL
,
Однако вы можете сделать что-то вроде этого:
<g:if test="${!ship.engine.report.equals(null)}">
...
</g:if>