7

我对 jstl 标签库感到困惑:

我想将数字格式化为具有德国风格的货币......但我尝试的一切都没有奏效......

我找到了以下示例,但输出相同-.-

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core"
      prefix="c" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt"
      prefix="fmt" %>

<html>
<head>
    <title>format number</title>
</head>
<body>
    <c:set var="val" value="40.52" />
    <p> Currency in USA
    <fmt:setLocale value="en_US"/>
    <fmt:formatNumber value="${val}"
              type="currency" />
    </p>

    <p>Currency in Germany
    <fmt:setLocale value="de_DE"/>
    <fmt:formatNumber value="${val}"
              type="currency"/>
    </p>
</body>
</html>

这就是输出:

Currency in USA $40.52

Currency in Germany $40.52

那里出了什么问题?

谢谢你的帮助。

4

2 回答 2

16

太棒了,偶然我得到了解决问题的方法:

诀窍是将setLocale标签的范围参数设置为 session :D 然后它就可以工作了 ^^ sweet :)

所以正确的代码片段如下所示:

<c:set var="val" value="40.52" />
<p> Currency in USA
<fmt:setLocale value="en_US" scope="session"/>
<fmt:formatNumber value="${val}"
          type="currency" />
</p>

<p>Currency in Germany
<fmt:setLocale value="de_DE" scope="session"/>
<fmt:formatNumber value="${val}"
          type="currency"/>

好的,我真的不知道它为什么会起作用,但这里有一些关于我的项目设置的更多信息:

  • Spring 3 框架(MVC,安全使用)
  • 以及标准应用程序和 servlet 设置
  • 每件事都在 tomcat 7 中运行,所以我使用 JSP 2.2

希望能帮助到你。

于 2012-07-11T16:22:59.320 回答
0

我有同样的问题。但我认为这与属性文件有关。我有 2 个属性文件,text.properties 和 text_sv.properties,当初始语言环境不是“sv”时,我可以在我的 jsp 文件中的任何位置使用 fmt:setLocale 更改它。但是当初始语言环境是 'sv' 时, fmt:setLocale 什么也没做。会话不起作用..

于 2016-04-22T22:38:26.943 回答