Je comprends l'utilisation de la norme fmt:message
Tag c'est-à-dire que nous définissons quelque chose comme ça dans le JSP:
<fmt:setBundle basename="ResourceBundles.ValidationErrorMessages" var="errorMessages" />
<fmt:message key="${error.value}" bundle="${errorMessages}" />
Supposons que error.Value = "MQ2009"
Mon fichier de propriétés nommé "ValidationErrorMessages" a l'entrée suivante
MQ2009 = MQ time out
Maintenant, mon exigence est d'avoir quelque chose comme
MQ2009 = Mq timeout happened for message {messagename}.
Puis-je définir la variable messagename
dynamiquement? C'est-à-dire lors de l'exécution, messagename
sera disponible dans la portée de la demande et devrait être remplacé dans le fichier de propriétés.
Comment puis-je faire ceci? Ai-je besoin d'une balise personnalisée ou Java EE fournit cette fonctionnalité que je ne connais pas?
Vous pouvez définir des propriétés comme
MQ2009 = Mq timeout happened for {0}
puis
<fmt:message key="MQ2009" var="val" >
<fmt:param value="${valueComingFromSomeParameter}"/>
</fmt:message>
puis
<c:out value="${val}"/>
Dans votre fichier de propriétés
MQ2009 = Mq timeout happened for message {0}
Ensuite, vous pouvez imbriquer un <fmt:param value="${messagename}"/>
balise avec <fmt:message
tag, où messagename
est dans la portée de la demande.