java-fmt:message将无意逗号添加到数字中

我发现格式标签库有奇怪的行为.我正在网页的页脚中格式化版权消息.我正在使用以下伪代码:

<fmt:message var="copyright" key="someKey">
    <fmt:param value="${year}"/>
</fmt:message>

...

<c:out value="${copyright}"/>

我只是将这一年作为论点传递到资源包中.如果您在传递年值之前将其舍去:

<c:out value="${year}"/>
<%-- renders as 2012 --%>

但是,在传递了参数之后,年份将格式化为数字.该数字呈现为2,012.

我已经在Google上搜索并四处询问,除了通用的Oracle文档(http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/fmt/tld-summary.html)之外没有发现任何其他内容

还有其他人做到吗?

提前致谢.

解决方法:

它由MessageFormat解释为Number,因此使用千位分隔符(根据当前语言环境可以是逗号或点)进行格式化.您可以通过添加zero width space来防止将其解释为数字:

<fmt:param value="${year}&#8203;"/>
上一篇:java-Tomcat7 WEB-INF / lib目录不起作用


下一篇:uva--1339 - Ancient Cipher(模拟水体系列)