JSP钱格式化

时间:2016-01-19 14:23:07

标签: java jsp

我正在尝试为瑞士语言环境设置格式,我公司需要将其格式化为:

  

9'949.50

     

-191'565.10

但是当我在JSP中应用以下代码时:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<fmt:setLocale value="de_CH" scope="session"/>
<fmt:formatNumber value="${value}" type="currency" />

我得到了正确的格式,但它添加了我们不想要的货币代码。所以这就是结果:

  

SFR中。 9'949.50

     

SFR中。 -191'565.10

有没有办法关闭货币代码显示?我试过各种各样的方式,但我得到的只是例外。

编辑:正如评论中所指出的,这是与JSP相关的问题。

3 个答案:

答案 0 :(得分:5)

不确定它是否有帮助。您可以尝试使用空字符串作为值添加currencySymbol属性吗?如下所示:

<fmt:formatNumber value="${value}" type="currency" currencySymbol=""/>

答案 1 :(得分:1)

我认为最好的数字格式是大十进制格式,但现代的框架工作如spring或Jsf有转换格式化程序支持请参阅http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html使用spring标签将自动格式化在客户端,但对于纯jsp最好使用jsp bean:

    public class Formatter implements java.io.Serializable
{
   private String currency= null;

   public String getCurrency(){
      return [format here];
   }

   //setter
}

并在jsp中使用

   <jsp:useBean id="cid" class="Formatter" >
   <jsp:setProperty name="cid" property="currency"  
                    value="value"/>
   <jsp:getProperty name="cid" property="currency"/>
    ...........
   </jsp:useBean>

答案 2 :(得分:0)

<c:set value="20014825.50" var="val" scope="request"/>
<fmt:setLocale value="de_CH"/>
<fmt:formatNumber value="${val}" minFractionDigits="2"/>