1

ローカライズされた .properties ファイルを既に作成しています。しかし、その場で変更する方法がわかりません。言語のフォームセレクターを作成できますが、出力をどこに設定する必要がありますか? 常にデフォルトの .properties ファイルを使用します

私のフォームは次のようになります

<h:form>
<h:selectOneMenu id="language" value="????">
  <f:selectItem id="item1" itemLabel="Czech" itemValue="cs_CZ" />
  <f:selectItem id="item2" itemLabel="Slovak" itemValue="sk_SK" />
  <f:selectItem id="item3" itemLabel="English" itemValue="default" />
</h:selectOneMenu>
</h:form>

休止状態の JSF2.0 および J2EE1.6 で春を使用しています

ありがとう

アップデート:

私は次のようにバンドルをロードしました:

 <f:loadBundle basename="bundle/labels" var="labels"/>

しかし、私はそれを次のように置き換える必要があります:

<bean id="messageSource"
      class="org.springframework.context.support.ResourceBundleMessageSource">
            <property name="basenames">
                <list>
                    <value>Messages</value>
                    <value>labels</value>
                </list>
            </property>
</bean>

ただし、このソリューションでは、パッケージ バンドルに labels.properties が見つかりません。クラスパスで検索しますが、再配置できません。

更新 2:

OK今、私はJSFとSPRINGが異なる読み込み方法を持っているのを見ることができますが、SPRINGはmessageSourceからバンドルを取得します.JSFはまだそれらを取得しているので、翻訳されたプロパティを取得するに<f:loadBundle>はどうすればよいですか?<f:loadBundle>

4

1 に答える 1

3

スプリングでこれをサポートしLocalChangeInterceptorます。このインターセプターは、リッスンするプロパティに構成できます。

<mvc:interceptors>
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"
          p:paramName="lang" />
<mvc:interceptors>

次に、パラメータを指定して HTTP リクエストを送信する必要がありますlang=cs_CZ

@詳細については、 Spring リファレンスの第 15.6.4 章 LocaleChangeInterceptorを参照してください。

于 2012-04-18T17:10:09.440 に答える