【问题标题】:Format Spring:message argument格式化 Spring:message 参数
【发布时间】:2011-09-26 21:16:04
【问题描述】:

如何格式化<spring:message> 的参数?

我有这样一条消息:

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

我的 jsp 有以下内容:

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

不显示value1,这是我想要格式化的数字。

我不确定是否可以在参数列表中添加 fmt 标记。

【问题讨论】:

    标签: jsp spring-mvc jstl


    【解决方案1】:

    &lt;spring:message&gt;arguments 属性可以包含 JSP EL 表达式,但不能包含 JSP 标记。

    尝试取消嵌套。您可以将&lt;fmt:formatNumber&gt; 的结果分配给变量,例如

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

    【讨论】:

    • 太棒了!太感谢了。仅供参考,我需要将参数分隔符更改为“|”因为格式化的货币有逗号,并且一旦格式化就会分隔数字。再次感谢
    【解决方案2】:

    将格式化的数字分配给一个变量,然后在你的 spring 消息标签中使用它:

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

    【讨论】:

      猜你喜欢
      • 2012-02-14
      • 2015-04-22
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2021-04-15
      • 2017-03-07
      • 1970-01-01
      相关资源
      最近更新 更多