Java 使用JSTL在jsp页面中显示货币代码(美元等)-取决于语言环境
我想做什么 在jsp页面中使用JSTL会根据所使用的语言环境在值前面显示货币代码Java 使用JSTL在jsp页面中显示货币代码(美元等)-取决于语言环境,java,jsp,jstl,Java,Jsp,Jstl,我想做什么 在jsp页面中使用JSTL会根据所使用的语言环境在值前面显示货币代码 USD 1,234.99 CAD 4,321.99 我正在做什么和得到什么 <fmt:setLocale value="${info.locale}" scope="session"/> <fmt:formatNumber value="${price}" type="currency"/> 我正在尝试这样做,它给了我正确的输出 <fmt:formatNumber patte
USD 1,234.99
CAD 4,321.99
我正在做什么和得到什么
<fmt:setLocale value="${info.locale}" scope="session"/>
<fmt:formatNumber value="${price}" type="currency"/>
我正在尝试这样做,它给了我正确的输出
<fmt:formatNumber pattern="USD #,###.##;USD -#,###.##" value="${value}" type="currency"/>
但对于这一点,我必须为所有语言环境手动执行
有没有一种方法可以不用手动使用JSTL实现这一点
任何帮助和指导都将不胜感激
感谢您的帮助和时间。要显示货币代码而不是货币符号,请按以下方式更改您的jstl代码
<fmt:formatNumber pattern="USD #,###.##;USD -#,###.##" value="${value}" type="currency" currencySymbol="USD"/>
formatNumber有一个currencyCode和一个currencySymbol属性:谢谢@JB Nizet,我以前尝试过像这样的属性“”,并且分别使用了每个属性,但它仍然显示货币(“$”)而不是USD/CAD,我认为通过使用这两个属性,我们可以让标记知道货币属于哪个区域,但它仍然显示符号这是因为区域规则告诉我们,在该区域,显示货币的首选方式是显示货币符号,而不是货币代码。如果您不喜欢,您可以简单地通过指定USD作为货币符号来欺骗它。再次感谢@JB Nizet,这是一个好主意,但是我不必为每个区域手动执行此操作吗?因此,您希望使用区域的货币,而不是与打印价格相关联的货币,对吗?我会创建自己的标签:
。
<fmt:formatNumber pattern="USD #,###.##;USD -#,###.##" value="${value}" type="currency" currencySymbol="USD"/>