19

我了解标准fmt:message标签的用法,即我们在 JSP 中定义如下内容:

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

假设 error.Value = "MQ2009"

我的名为“ValidationErrorMessages”的属性文件有以下条目

MQ2009 = MQ time out

现在我的要求是有类似的东西

MQ2009 = Mq timeout happened for message {messagename}.

我可以messagename动态定义变量吗?即在运行时,messagename将在请求范围内可用,并且应该在属性文件中替换它。

我怎样才能做到这一点?我需要自定义标签还是 Java EE 提供了我不知道的这个功能?

4

2 回答 2

37

您可以定义属性,例如

MQ2009 = Mq timeout happened for {0}

进而

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

进而

<c:out value="${val}"/>
于 2012-10-16T04:57:23.877 回答
5

在你的属性文件中

MQ2009 = Mq timeout happened for message {0}

然后你可以嵌套一个带有<fmt:param value="${messagename}"/>标签的<fmt:message标签,messagename在请求范围内。

于 2012-10-16T05:02:12.923 回答