Проверка JSF не находит пользовательский класс ResourceBundle - PullRequest
5 голосов
/ 20 марта 2009

У меня есть собственный класс ResourceBundle org.example.web.UILabels.java, который хорошо работает при выполнении кода , но редактор JSF в Eclipse не находит его, я предполагаю, что редактор / валидатор только ищет для файлов свойств по имени. Это также означает, что я больше не получаю поиск вперед по типам ресурсов, которые было очень приятно иметь.

Есть идеи, как это можно исправить?

<f:loadBundle basename="org.example.web.UILabels" var="uiLabels"/>
...
<h:outputText value="#{uiLabels.someTextValue}" />
...

Я получаю сообщение об ошибке (в списке ошибок)

Пакет ресурсов org.example.web.UILabels не найден в classpath

Тип = JSF Проблема

Eclipse3.4.0 с версиями WebStandardTools

  • Версия: 1.4.0.v200802280619-13-7w311917141518
  • Версия: 1.5.1.v200802280619-1407w311917141519
  • Версия: 3.0.0.v200806092130-7A-8Y8QqN2lf4VSWrI2ek5Pf4k7s

Подробнее о том, почему я использую класс ResourceBundle вместо файла свойств, см. Вопрос 653682 Как переопределить некоторые ресурсы из свойства Resourcebundle

Спасибо за ваше время, Дэвид Уотерс

Ответы [ 2 ]

3 голосов
/ 20 марта 2009

Элемент resource-bundle более эффективен, чем действие f: loadBundle, поскольку пакет можно создать один раз для всего приложения. Однако это функция JSF 1.2, и если вы хотите быть совместимым с JSF 1.1, вы должны использовать JSF 1.1. Вот пример, если вы используете JSF 1.2: Определите это в вашем файле names-config.xml следующим образом:

<application>
<resource-bundle>
<base-name>org.example.web.UILabels</basename>
<var>uiLabels</var>
</resource-bundle>
</application>

Извините, что не ответил на ваш вопрос, но у меня нет опыта работы с Eclipse. Я также сначала неправильно понял ваш вопрос, поэтому я отредактировал свой первоначальный ответ.

2 голосов
/ 23 сентября 2013

У меня была такая же проблема, я наконец нашел это решение: Eclipse ищет только свойства по умолчанию, ваш проект должен иметь свойства без локали, например, с:

<f:loadBundle basename="i18n.messages" var="msg" />

Eclipse будет искать только "i18n/messages.properties".

...