JSF не сообщает о неопределенных бинах - PullRequest
4 голосов
/ 03 февраля 2011

Я начал изучать Java, JSF2 и JPA2 и использовал пример проекта «Каталог животных» для начала. Я использую Eclipse + Glassfish.

Итак, у меня есть страница просмотра JSF со следующей строкой:

<h:outputText value="Item #{catalog.pagingInfo.firstItem + 1} .. #{cataloTYPO.pagingInfo.lastItem} of #{catalog.pagingInfo.itemCount}"/>

cataloTYPO не существует, это не боб, не класс, ничего. Проблема в том, что JSF, кажется, совершенно доволен этим и выдает «Item 1 .. of 29», я ожидаю, что это вызовет исключение или, по крайней мере, запишет проблему в журнал, но ничего не происходит.

Я пытался гуглить эту проблему, но, похоже, ни у кого ее нет.

Спасибо за помощь.

РЕДАКТИРОВАТЬ: альтернативно, это нормальное поведение?

1 Ответ

6 голосов
/ 03 февраля 2011

Это не относится только к JSF. Это специфично для EL (эти #{} вещи). Это разработано, чтобы быть нулевым. Если в области нет ничего доступного, то есть null, то он просто не будет предпринимать дальнейших действий. Он ничего не печатает, и NullPointerException не будет выброшено. Это особенно полезно в тех случаях, когда допускается ситуация empty.

Если вы хотите в любом случае вызывать исключения или предупреждать отчеты, вам придется написать собственный ELResolver, который делает это, когда разрешенное значение оказывается null. Хорошую статью о реализации собственного ELResolver для JSF можно найти здесь .

...