Пакет ресурсов на стороне сервера для международного - PullRequest
0 голосов
/ 27 марта 2012

Я столкнулся с проблемой загрузки ResourceBundle на стороне сервера в приложении Seam 2.2.

На стороне клиента (JSF) можно использовать пакет ресурсов:

<f:facet name="header">#{message['addTest.header.add']}</f:facet>

, нона стороне сервера нет способа использовать комплект ресурсов.

Я попробовал следующую методологию, но решение не работает.

  • добавить в StatusMessage: StatusMessage.addFromResourceBundle (serverity.ERROR, "key_string ");
  • Использовать внедрение, как в этом вопросе: Использовать пакет сообщений в классе Java с Seam
  • Загрузить пакет ресурсов:

    private java.util.ResourceBundle getResourceBundle () {org.jboss.seam.core.ResourceLoader resourceLoader = org.jboss.seam.core.ResourceLoader .instance ();java.util.ResourceBundle resourceBundle = resourceLoader.loadBundle ("message");return resourceBundle;}

но результат этого метода нулевой.

Любая идея или руководство будут высоко оценены.

1 Ответ

0 голосов
/ 27 марта 2012

Нашел проблему, 3-й способ работает.

Это потому, что я использую 2 пакета ресурсов в своем проекте, один - сообщения (общие), а другой - myMessage.

Сначала при определении комплекта ресурсов в файле component.xml я определяю только комплект ресурсов myMessage.

<core:resource-loader bundle-names="my">
        <core:bundle-names>
            <value>myMessage</value>
        </core:bundle-names>
</core:resource-loader>

В файлеface-config.xml я определил языковую поддержку.

<application>
        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
        <locale-config>
            <default-locale>en</default-locale>
            <supported-locale>bg</supported-locale>
            <supported-locale>de</supported-locale>
            <supported-locale>en</supported-locale>
            <supported-locale>fr</supported-locale>
            <supported-locale>tr</supported-locale>
            <supported-locale>ja</supported-locale>
        </locale-config>

        <message-bundle>messages</message-bundle>

    </application>

А при использовании 3-го способа он возвращает только пакет сообщений.

Чтобы это исправить, нужно только добавить пакет сообщений в файл components.xml и удалить имя в ядре: resource-loader.

<core:resource-loader>
        <core:bundle-names>
            <value>messages</value>
            <value>myMessage</value>
        </core:bundle-names>
</core:resource-loader>

Вот и все.

...