我对jstl标签libs感到困惑:
我想将数字格式化为具有德国风格的货币...但我尝试的所有内容都没有用...
我找到了以下示例,但输出结果与-.-
相同<%@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
那里出了什么问题?
感谢您的帮助。
答案 0 :(得分:16)
太棒了,我偶然得到了解决问题的方法:
诀窍是将setLocale
标签的scope-parameter设置为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"/>
好的,我真的不知道它为什么会起作用,但这里有一些关于我的项目设置的更多信息:
希望它有所帮助。
答案 1 :(得分:0)
我遇到了同样的问题。但我认为这与属性文件有关。我有2个属性文件,text.properties和text_sv.properties,当初始语言环境不是'sv'时,我可以使用fmt:setLocale在我的jsp文件中的任何位置更改它。但是当初始语言环境是'sv'时,fmt:setLocale什么也没做。会话不起作用..