【问题标题】:<fmt:formatNumber in jstl need to $ symbol<fmt:formatNumber in jstl 需要 $ 符号
【发布时间】:2011-11-15 20:53:18
【问题描述】:

在我们的 struts 应用程序中,我们一直在使用&lt;fmt:formatNumber&gt; 来显示货币的很多地方。默认情况下,标签采用浏览器设置并显示货币符号。如果语言环境是 "en_US" 显示 ($),如果 "en_UK" 显示 (euro)。

但我想在整个应用程序中单独显示美元。有什么办法可以在单个地方改变反射。

提前致谢!!!

【问题讨论】:

  • 我真的希望它显示的是 en_UK 的 GBP (£) 而不是 Euro (€)?

标签: java jsp struts jstl


【解决方案1】:

但我想在整个应用程序中单独显示美元。

只需指定currencySymbol 属性。

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

另见:

【讨论】:

  • 显然,OP 在所有地方都使用了&lt;fmt:formatNumber&gt;,因此 OP 想要一种更简单的方法,只需在某个地方添加 1 个简单的语言环境,所有&lt;fmt:formatNumber&gt; 都可以在整个地方“查看”。
【解决方案2】:

&lt;fmt:setLocale value="en_US"/&gt; 中,您可以使用范围属性并将值放入应用程序。通过这种方式,它将整个应用程序的 Locale 值保存到 en_US 。

【讨论】:

    【解决方案3】:

    我假设您正在使用属性文件。我建议有一个基于语言区域而不是国家区域的属性文件。

    例如如果您有ApplicationResource.en_US.propertiesApplicationResources.en_UK.properties,不如使用ApplicationResources.en.properties 并有一个只显示美元的键/值条目。

    或者,您可以将您的语言环境设置为仅en_US显示您的货币。示例:

    <fmt:setLocale value="en_US"/>
    <fmt:formatNumber value="${val}"
                      type="currency"/>
    

    【讨论】:

    • 是的,我见过 ,但是在我的应用程序中,我一直在很多地方使用 ,我不想在所有 jsp 中重复区域设置这对我以后的维护会很困难。所以有什么方法可以设置这个语言环境。
    • 您可以在 response.setLocale() 方法上设置语言环境,但如果您正在进行内部化,那将是不明智的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 2019-05-13
    • 2017-04-03
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多