多言語化されたメッセージを取得する¶
項目
MessageManager によるメッセージの取得¶
メッセージコードを指定してメッセージを取得する¶
メッセージコードと、現在ログインしているユーザの言語から、メッセージプロパティファイルに定義されたメッセージを取得します。String exampleMsg = jp.co.intra_mart.foundation.security.message.MessageManager.getInstance().getMessage("I18N.MESSAGE.EXAMPLE");メッセージは、次のように自動解決されます。
- アカウントコンテキスト言語のメッセージ
- テナント言語のメッセージ
- システム・デフォルト言語のメッセージ
- 言語 ID の付いていないメッセージプロパティファイルのメッセージ
- ユーザ言語で「未定義」を意味するメッセージ
上記のいずれにも該当しない場合は、文字列「undefined」が返却されます。
メッセージコードと言語を指定してメッセージを取得する¶
メッセージコードと、指定された言語から、メッセージプロパティファイルに定義されたメッセージを取得します。String exampleMsg = jp.co.intra_mart.foundation.security.message.MessageManager.getInstance().getMessage(Locale.ENGLISH, "I18N.MESSAGE.EXAMPLE");メッセージは、次のように自動解決されます。
- 指定された言語のメッセージ
- 言語 ID の付いていないメッセージプロパティファイルのメッセージ
上記のいずれにも該当しない場合、文字列「undefined」が返却されます。
タグによるメッセージの取得¶
MessageManager に対応するタグが提供されています。動作は MessageManager と同じです。
メッセージコードを指定してメッセージを取得する¶
<%@ taglib prefix="imarttag" uri="http://www.intra-mart.co.jp/taglib/core/standard" %> <imarttag:message id="I18N.MESSAGE.EXAMPLE"></imarttag:message>
メッセージコードと言語を指定してメッセージを取得する¶
<%@ taglib prefix="imarttag" uri="http://www.intra-mart.co.jp/taglib/core/standard" %> <imarttag:message id="I18N.MESSAGE.EXAMPLE" locale="en"></imarttag:message>
MessageSource によるメッセージの取得¶
MessageManager をラップした MessageSource の実装クラス IntramartMessageSource が提供されています。applicationContext-im_tgfw_common.xml に IntramartMessageSource の bean を登録しています。<bean id="messageSource" class="jp.co.intra_mart.framework.extension.spring.message.IntramartMessageSource" />メッセージは、次のように自動解決されます。
- 指定された言語のメッセージ
- 言語 ID の付いていないメッセージプロパティファイルのメッセージ
上記のいずれにも該当しない場合、文字列「undefined」が返却されます。 NoSuchMessageException はスローされません。
spring.tldのmessageタグによるメッセージの取得¶
設定されている messageSource により、メッセージを取得します。