Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Простое сравнение со строковыми работами:
<c:when test="${someModel.status == 'OLD'}">
Таким образом для разрешения моей проблемы полностью я должен был сделать следующее:
<% pageContext.setAttribute("old", Status.OLD); %>
Тогда я смог сделать:
<c:when test="${someModel.status == old}"/>...</c:when>
, который работал как ожидалось.
Для этого делаю следующее:
<c:set var="abc">
<%=Status.OLD.getStatus()%>
</c:set>
<c:if test="${someVariable == abc}">
....
</c:if>
Уродливо выглядит, но работает!
Обычно я считаю плохой практикой смешивать код Java в файлах jsps / tag. Использование 'eq' должно помочь:
<c:if test="${dp.Status eq 'OLD'}">
...
</c:if>