web-dev-qa-db-ja.com

JSTLコアfmt:messageバンドル/プロパティファイルを使用した動的メッセージ

標準の使用法を理解していますfmt:messageタグ、つまり、JSPで次のように定義します。

<fmt:setBundle basename="ResourceBundles.ValidationErrorMessages" var="errorMessages" />
<fmt:message key="${error.value}" bundle="${errorMessages}" />

エラーを想定します。値= "MQ2009"

「ValidationErrorMessages」という名前のプロパティファイルには次のエントリがあります

MQ2009 = MQ time out

今私の要件は次のようなものを持つことです

MQ2009 = Mq timeout happened for message {messagename}.

messagename変数を動的に定義できますか?つまり、実行時にmessagenameがリクエストスコープで使用可能になり、プロパティファイルで置き換える必要があります。

これどうやってするの?カスタムタグが必要ですか、またはJava EEがこの機能を提供していますか?

19
Metalhead

次のようなプロパティを定義できます

MQ2009 = Mq timeout happened for {0}

その後

<fmt:message key="MQ2009" var="val" >
   <fmt:param value="${valueComingFromSomeParameter}"/>
</fmt:message>

その後

<c:out value="${val}"/>
36
Jigar Joshi

プロパティファイル

MQ2009 = Mq timeout happened for message {0}

次に、<fmt:param value="${messagename}"/>タグ付き<fmt:messageタグ。messagenameはリクエストスコープ内にあります。

4
Bhesh Gurung