我理解标准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是否提供了我不知道的此功能?
答案 0 :(得分:36)
您可以定义
等属性MQ2009 = Mq timeout happened for {0}
然后
<fmt:message key="MQ2009" var="val" >
<fmt:param value="${valueComingFromSomeParameter}"/>
</fmt:message>
然后
<c:out value="${val}"/>
答案 1 :(得分:4)
在您的属性文件
中MQ2009 = Mq timeout happened for message {0}
然后,您可以嵌套带有<fmt:param value="${messagename}"/>
标记的<fmt:message
代码,其中messagename
位于请求范围内。