Как остановить выражения EL для оценки в неотрисованных компонентах JSF?
Редактировать: неважно!
Я нахожусь в процессе переключения моего проекта с JSF 1.2 с Facelets на JSF 2 с Facelets. Похоже, что в JSF 2 выражения EL в компонентах, которые не отображаются, оцениваются. Похоже, что это не так в JSF 1.2. Таким образом, вы получаете такие проблемы, как:
<h:panelGroup rendered="#{not empty myBean.myPojo}">
<h:outputText value="#{myBean.myPojo.pojoProperty}" />
</h:panelGroup>
вызывая исключение NullPointerException, если myBean.myPojo имеет значение null, когда его не было в версии JSF 1.2 моего проекта. Альтернативой является использование c:if для этих случаев (вместо h:panelGroup rendered="..."), но это имеет свои проблемы. Может быть что-то еще я делаю не так? Есть ли какая-то конфигурация для этого? Спасибо!
1 ответ
Если это все, что происходит, то это похоже на ошибку в базовой реализации EL. Я предлагаю проверить, есть ли новая версия, если ранее сообщалось об этой проблеме, а если нет - сообщите об этом!:)