我理解标准fmt:message
标签的用法,即我们在JSP中定义了这样的东西:
<fmt:setBundle basename="ResourceBundles.ValidationErrorMessages" var="errorMessages" />
<fmt:message key="${error.value}" bundle="${errorMessages}" />
假设错误。值 ="MQ2009"
我的名为"验证错误消息"的属性文件具有以下条目
MQ2009 = MQ time out
现在我的要求是有类似的东西
MQ2009 = Mq timeout happened for message {messagename}.
我可以动态定义messagename
变量吗?即在运行时,messagename
将在请求范围内可用,并且应该在属性文件中替换它。
我该怎么做?我是否需要定制标记,或者 Java EE 是否提供了我不知道的此功能?
您可以定义如下属性
MQ2009 = Mq timeout happened for {0}
然后
<fmt:message key="MQ2009" var="val" >
<fmt:param value="${valueComingFromSomeParameter}"/>
</fmt:message>
然后
<c:out value="${val}"/>
在属性文件中
MQ2009 = Mq timeout happened for message {0}
然后,您可以将<fmt:param value="${messagename}"/>
标记嵌套在<fmt:message
标记中,其中messagename
位于请求范围内。