我发现格式标签库有奇怪的行为。我正在格式化网页页脚中的版权信息。我正在使用以下伪代码:
<fmt:message var="copyright" key="someKey">
<fmt:param value="${year}"/>
</fmt:message>
...
<c:out value="${copyright}"/>
我只是将年份作为参数传递到资源包中。如果您在传入之前 c-out 年份值:
<c:out value="${year}"/>
<%-- renders as 2012 --%>
但是在传入参数后,年份被格式化为数字。该数字呈现为 2,012。
我用谷歌搜索并四处询问,除了通用的 Oracle 文档 ( http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/fmt/tld-summary.html ) 之外没有找到任何东西
还有其他人达到这个目的吗?
提前致谢。
最佳答案
我遇到了同样的问题,但在尝试后发现只有数字类型会被格式化。如果您先将年份设为字符串,那么它不会:
Calendar cal = Calendar.getInstance();
int currYear = cal.get(Calendar.YEAR);
String cYear = Integer.toString(currYear);
<fmt:message key="msg.parameterized"><fmt:param value="<%=currYear%>"/></fmt:message>
<fmt:message key="msg.parameterized"><fmt:param value="<%=cYear%>"/></fmt:message>
第一个将包含 2,012,第二个仅包含 2012
关于java - fmt :message adding unintentional comma into number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11058676/