java - fmt :message adding unintentional comma into number

标签 java jsp jstl

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

<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/

相关文章:

java - Thymeleaf 返回 String 数组而不是 List<Object>

java - 在 servlet-context 中的 dev 和 prod 值之间切换的标志

java - 在 JSP 的 URL 中隐藏表单操作值

java - 是否有任何理由在 JSP 中执行服务器端逻辑而不是从外部类调用方法?

java - 如何将jsp页面中的多个(数量是动态的)字段绑定(bind)到 Controller ?

Java HttpGet,服务中打开文件过多错误

java - 为什么我无法在Java中实例化JSONObject(字符串无法转换为map)

jsp - 我如何找到 JSP 标签库背后的代码?

java - 如何在 WEB-INF 文件夹中使用带有 JAR 的 taglibs JSTL/core

java - 如何解决 : Can not find the tag library descriptor for "http://java.sun.com/jsp/jSTL/core"