2012-07-10 111 views
2

当我使用formatNumber如下:为什么JSTL的formatNumber货币符号设置特定设置CURRENCYCODE

<fmt:formatNumber value="${amount}" type="currency" currencyCode="${currencyCode}" var="amt" /> 

如果我在地方en_US和货币代码很是欧元,我得到EUR为标志,但如果我在语言环境en_GB,则获得。为什么要考虑地区?欧元不应该总是转换成?无论如何得到我期待使用formatNumber的行为?

+0

@jahroy,将改变数,这两者都不是可取的文本和格式的转换。 – Josh 2012-07-10 18:51:12

+0

该文件建议你可以设置'currencySymbol'为任何你想要的:http://www.tutorialspoint.com/jsp/jstl_format_formatnumber_tag.htm – jahroy 2012-07-10 19:05:22

+0

只是改变了我的答案... – jahroy 2012-07-10 19:06:19

回答

2

区域设置被考虑进来以便输出对用户有意义。

作为一个愚蠢的美国人(谁住在en_US区域)我不知道那个时髦的符号意味着什么。

欧元对我来说非常有意义。

一个quick google建议你可以设置任何你想要的currencySymbol属性:

<fmt:formatNumber value="${amount}" type="currency" currencySymbol="FOO" currencyCode="${currencyCode}" var="amt" /> 
+1

是的,我不喜欢它的原因这意味着我必须拿出我自己的货币代码到货币符号映射。我真的希望formatNumber能够自动为我解决这个问题。它的作用是什么,但仅限于“正确”的语言环境。 – Josh 2012-07-10 19:20:48