Защитит ли оператор безопасной навигации 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>
Другие вопросы по тегам