2011-07-01 11 views
15

¿Cómo puedo formatear los argumentos de mi <spring:message>?Format Spring: mensaje argumento

tengo un mensaje como este:

message.myMessage=this is {0} my message {1} with {2} multiple arguments 

Mi JSP tiene la siguiente:

<spring:message code="message.myMessage" 
       arguments="<fmt:formatNumber value='${value1}' currencySymbol='$' type='currency'/>,${value2},${value3}" 
       htmlEscape="false"/> 

el cual no muestra value1, que es un número que me gustaría formateado.

No estoy seguro de poder agregar la etiqueta fmt dentro de la lista de argumentos.

Respuesta

22

El atributo arguments de <spring:message> puede contener expresiones JSP EL, pero no etiquetas JSP.

Intenta des-anidarlo. Puede asignar el resultado de <fmt:formatNumber> a una variable, p.

<fmt:formatNumber var="formattedValue1" value='${value1}' currencySymbol='$' type='currency'/> 
<spring:message code="message.myMessage" arguments="${formattedValue1},${value2},${value3}" htmlEscape="false"/> 
+5

impresionante! Muchas gracias. FYI necesitaba cambiar el argumentSeperator a '|' porque una moneda formateada tiene comas y separará los números una vez formateados. Gracias de nuevo – blong824

1

asignar el número formateado a una variable y utilizarla en su etiqueta del mensaje de la primavera:

<fmt:formatNumber value="${value1}" 
        var="value4" 
        type="currency"/> 

<spring:message code="message.myMessage" 
      arguments="${value4},${value2},${value3}" 
      htmlEscape="false"/>