1

国際化のためにSpring ResourceBundleMessageSourceを使用しています。ビューフォームではfmt:message、フォームフィールドのラベルに使用しています。バリデーターでフィールド値が正しくない場合、それぞれのフォーム フィールド ラベルとエラー メッセージでフィールドを拒否する必要があります。例えば<fmt:message key"abc" /> <form:input name="xyz">

エラー メッセージは次のようになります:「abc の値が正しくありません」。

バリデーターで私は言わなければならない -

`errors.rejectValue("xyz", "error.message", new Object[] {getMessage("message.abc")})`

春の設定:

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> 
 <property name="basename" value="MySource" /> 
</bean>

リソースファイルからメッセージを読み取るために使用していますgetMessageMessageSourceAccesor

私のリソース ファイル名はMySource.propertiesです。私のリソース フォルダには他の言語固有のファイルはありません。また、jsp ビューでこのファイルからラベルを読み取ることはできますが、NoSuchMessageアクセスしようとすると例外が発生します (ロケール en の abc の場合)。バリデータから。

簡単な質問は、言語リソース ファイルが提供されていない場合に、Spring リソースにデフォルトのプロパティ ファイル (接尾辞のないファイル名) を使用してメッセージを検索するように指示する方法です。

任意のポインターは、先に進むのに役立ちます。

4

2 に答える 2

1

私は同じ問題を抱えています。spring mvc のドキュメントを確認すると、私のリリースは 4.1.1 で、ResourceBundleMessageSourceには「basename 」ではなく「 basenames」がプロパティとして含まれています。

private String[] basenames = new String[0];

Spring Web App コンテキストで構成された ResourceBundleMessageSource Bean のプロパティ名を更新すると、機能するようになりました:D

<property name="basenames" value="messages"></property>

スクリーンショットはまだ投稿できません。10 ポイントが必要なためです。また、初心者なので :D

于 2014-11-03T14:43:50.013 に答える
0

Spring MVC を使用していると思いますが、

アプリケーションコンテキストファイルでSpring Resource bundleを構成しましたか

<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">       
        <beans:property name="basename" value="classpath:messages" />
        <beans:property name="defaultEncoding" value="UTF-8" />
</beans:bean>

このリンクは、ResourceBundleMessageSource の例を使用したデモ Spring Resource bundleで詳細に説明しています

これが役立つ場合は、投稿を評価してください。

于 2013-02-06T10:40:42.337 に答える