blong824
blong824

Reputation: 4030

Format Spring:message argument

How can I format the arguments of my <spring:message>?

I have a message like this:

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

My jsp has the following:

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

which doesn't display value1, which is a number I would like formatted.

I am not sure I can add the fmt tag inside the argument list.

Upvotes: 15

Views: 30721

Answers (2)

Salim Hamidi
Salim Hamidi

Reputation: 21381

Assign the formatted number to a variable then use it in your spring message tag :

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

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

Upvotes: 1

skaffman
skaffman

Reputation: 403481

The arguments attribute of <spring:message> can contain JSP EL expressions, but not JSP tags.

Try un-nesting it. You can assign the result of <fmt:formatNumber> to a variable, e.g.

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

Upvotes: 22

Related Questions