java - fmt - prefix jstl
JSTL Core fmt: message Tag Mensaje dinĂ¡mico usando un archivo de paquete/propiedades (2)
Entiendo el uso del estándar fmt:message
Tag, es decir, definimos algo como esto en el JSP:
<fmt:setBundle basename="ResourceBundles.ValidationErrorMessages" var="errorMessages" />
<fmt:message key="${error.value}" bundle="${errorMessages}" />
Supongamos que error.Value = "MQ2009"
Mi archivo de propiedades llamado "ValidationErrorMessages" tiene la siguiente entrada
MQ2009 = MQ time out
Ahora mi requisito es tener algo como
MQ2009 = Mq timeout happened for message {messagename}.
¿Puedo definir la variable messagename
dinámicamente? Es decir, en el tiempo de ejecución, messagename
estará disponible en el alcance de la solicitud y debe ser sustituido en el archivo de propiedades.
¿Cómo puedo hacer esto? ¿Necesito una etiqueta personalizada o Java EE proporciona esta característica que no conozco desactivada?
En tu archivo de propiedades
MQ2009 = Mq timeout happened for message {0}
Luego puede anidar una <fmt:param value="${messagename}"/>
dentro de la etiqueta <fmt:message
, donde messagename
está en el ámbito de la solicitud.
Puede definir propiedades como
MQ2009 = Mq timeout happened for {0}
y entonces
<fmt:message key="MQ2009" var="val" >
<fmt:param value="${valueComingFromSomeParameter}"/>
</fmt:message>
y entonces
<c:out value="${val}"/>