【问题标题】:JSP money formattingJSP 货币格式化
【发布时间】:2016-04-25 01:42:58
【问题描述】:

我正在尝试为瑞士地区设置货币格式,而我的公司需要这样的格式:

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

我的货币格式没问题,但它添加了我们不想要的货币代码。所以这是结果:

瑞士法郎。 9'949.50

瑞士法郎。 -191'565.10

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

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

【问题讨论】:

标签: java jsp


【解决方案1】:

不确定它是否会有所帮助。您能否尝试添加带有空字符串的currencySymbol 属性作为值?如下:

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

【讨论】:

  • 我发誓我试过这个,但不要知道它当时怎么没用 :) 无论如何,现在它工作了,谢谢。
【解决方案2】:

在我看来最好的数字格式是大十进制格式,但是现代框架如 spring 或 Jsf 具有转换格式器支持见http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html 使用 spring 标记将在客户端自动格式化,但对于纯 jsp 最好使用jsp 豆类:

    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>

【讨论】:

    【解决方案3】:
    <c:set value="20014825.50" var="val" scope="request"/>
    <fmt:setLocale value="de_CH"/>
    <fmt:formatNumber value="${val}" minFractionDigits="2"/> 
    

    【讨论】:

      猜你喜欢
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多