2011-07-01 28 views
15

Làm cách nào để định dạng đối số của số <spring:message>?Định dạng Mùa xuân: đối số tin nhắn

Tôi có một tin nhắn như thế này:

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

jsp của tôi có như sau:

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

mà không hiển thị value1, mà là một số tôi muốn định dạng.

Tôi không chắc chắn tôi có thể thêm thẻ fmt vào danh sách đối số hay không.

Trả lời

22

Thuộc tính arguments của <spring:message> có thể chứa biểu thức JSP EL chứ không phải thẻ JSP.

Hãy thử hủy liên kết. Bạn có thể gán kết quả của <fmt:formatNumber> cho một biến, ví dụ:

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

Awesome! Cảm ơn bạn rất nhiều. FYI Tôi cần thay đổi đối sốSeperator thành '|' vì đơn vị tiền tệ được định dạng có dấu phẩy và sẽ tách riêng các số sau khi được định dạng. Cảm ơn một lần nữa – blong824

1

Gán số định dạng cho một biến sau đó sử dụng nó trong thẻ thông điệp mùa xuân của bạn:

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

<spring:message code="message.myMessage" 
      arguments="${value4},${value2},${value3}" 
      htmlEscape="false"/> 
Các vấn đề liên quan