JSF 2.0 EL обрабатывает пустые значения для ключей ресурсов

Просто быстрый вопрос к вам, ребята.

У меня есть ключ ресурса, который хранится в виде строки в управляемом компоненте, и я хотел бы, чтобы он разрешался в значение в конкретном сопоставленном пакете ресурсов.

Вот с чего я начал:

<h:outputText value="#{msgs[bean.someVal]}"/>

Я сразу заметил, что когда someVal был нулевым, я получал следующее исключение:

javax.el.PropertyNotFoundException: /webpage.xhtml at line 118 and column 188 value="#{msgs[bean.someVal]}": Property '' not found on type java.util.PropertyResourceBundle

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

<h:outputText value="#{bean.someVal == null ? '' : msgs[bean.someVal]}"/>

Но я получил ту же ошибку, только указав новое значение.

Я использую JSF2.0 (Apache) на Tomcat6.

У кого-нибудь есть идеи? Я довольно озадачен этим..

Дайте мне знать, если вам нужна дополнительная информация, я надеюсь, что этого достаточно, чтобы продолжить .. Я думаю, что это просто какая-то глупость, которую я делаю;)


person Dave    schedule 24.05.2012    source источник


Ответы (1)


Свойство '' не найдено

У тебя там пустая строка. Пустая строка — это не то же самое, что null.

Вместо этого используйте проверку empty. Он проверит, не является ли значение null и не является ли оно пустой строкой.

<h:outputText value="#{empty bean.someVal ? '' : msgs[bean.someVal]}" />

Между прочим, альтернативой является предоставление пользовательской реализации ResourceBundle для #{msgs}, которая не генерирует исключение, а вместо этого возвращает null или пустой метод String для handleGetObject().

person BalusC    schedule 24.05.2012
comment
Спасибо!! Я знал, что делаю какую-то глупость! - person Dave; 24.05.2012