2012-07-10 52 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