Вопрос

я использую Весна 2.5 с JSF 1.2., на Tomcat 6.0.13..

В одной части кода я пытаюсь загрузить ResourceBundle. Используя следующий подход:

ResourceBundle.getBundle(context.getApplication().getMessageBundle(), Locale.EN);

Проблема в том, что getmessagebundle () Метод возвращает нулевой. Отказ Это используется для работы с JSF 1.1.. Отказ У кого-нибудь есть идея, что может быть проблемой?

На данный момент я собираюсь на имя пучка Hardcode, но я бы предпочел, если все мои данные конфигурации будут размещены внутри Лицо-конфиг.

Bundle Resource устанавливается следующим образом:

    <application>
        <locale-config>
            <default-locale>en</default-locale>
        </locale-config>
        <resource-bundle>
            <base-name>org.mysite.MessageBundle</base-name>
            <var>msgs</var>
        </resource-bundle>
    </application>
Это было полезно?

Решение

То getMessageBundle() возвращает значение <message-bundle> въезд внутрь faces-config.xml, не <resource-bundle> вход.

Его значение на самом деле не доступна API JSF 1.2. Вы должны указать это самостоятельно.

ResourceBundle bundle = context.getApplication().getResourceBundle(context, "org.mysite.MessageBundle");

То <message-bundle> предназначен для проверки / преобразования сообщений. Вероятно, у тебя есть на самом деле использовал это в JSF 1.1.

Другие советы

Игорб,

Вы можете использовать инъекцию ресурсов, чтобы JSF предоставить вашему управляемому бону с помощью правильного ResourceBundle. Это удалит потребность в жестком коде в вашем источнике Java и сохранить ассоциацию красиво централизованной.

Начните с определения управляемого свойства на вашем бобовом бону. В конфигурации JSF установите значение управляемого свойства в экспрессию EL, которое ссылается на ваш пакет ресурсов.

Я сделал что-то вроде следующего, используя Tomcat 6. Единственное предостережение состоит в том, что вы не можете получить доступ к этому значению с конструктора вашего Backing Bean, поскольку JSF еще не будет инициализирован. Использовать @PostConstruct По методу инициализации, если значение необходимо в начале жизненного цикла бобов.

<managed-bean>
  ...
  <managed-property>
    <property-name>messages</property-name>
    <property-class>java.util.ResourceBundle</property-class>
    <value>#{msg}</value>
  </managed-property>
  ...
</managed-bean>

<application>
  ...
  <resource-bundle>
    <base-name>application_messages</base-name>
    <var>msg</var>
  </resource-bundle>
  ...
</application>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top