JSTL 核心 fmt:消息标记 使用捆绑包/属性文件的动态消息

2022-09-02 11:56:54

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

<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}.

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

我该怎么做?我是否需要自定义标记,或者 Java EE 是否提供了我不知道的此功能?


答案 1

您可以定义如下属性:

MQ2009 = Mq timeout happened for {0}

然后

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

然后

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

答案 2

在属性文件中

MQ2009 = Mq timeout happened for message {0}

然后,可以将带有标记的标记嵌套在请求范围内。<fmt:param value="${messagename}"/><fmt:messagemessagename


推荐