我想知道如何在 JSF 应用程序上设置默认的小数点分隔符。我有一些<h:inputText>
我需要将其格式化为货币,保留两位小数。现在默认使用的小数点分隔符是逗号,
当我在保存时执行一些操作时,这会给我一个错误。我不知道是否可以设置每次使用时使用的小数点分隔符<f:convertNumber>
tag.
我尝试使用这个:
<f:convertNumber pattern="########0.00" groupingUsed="false" />
但它仍然将逗号设置为小数点分隔符。
默认的小数分隔符取决于所使用的区域设置。您可以通过 2 种方式进行设置:
-
以每次观看为基础locale
的属性<f:view> https://docs.oracle.com/javaee/7/javaserver-faces-2-2/vdldocs-facelets/f/view.html tag:
<f:view locale="#{bean.locale}">
-
在每个转换器的基础上locale
的属性<f:convertNumber> https://docs.oracle.com/javaee/7/javaserver-faces-2-2/vdldocs-facelets/f/convertNumber.html tag:
<f:convertNumber locale="#{bean.locale}" />
目前尚不清楚您的目标区域是什么,但使用.
因为分数分隔符通常用于美元,其区域设置为en-US
, 例如。所以你需要这样设置:
<f:convertNumber type="currency" currencySymbol="$" locale="en-US" />
它也可以从java.util.Locale http://docs.oracle.com/javase/8/docs/api/java/util/Locale.html豆属性。
<f:convertNumber type="currency" currencySymbol="$" locale="#{bean.locale}" />
请注意,我使用了type="currency"
,这更加自我记录。
也可以看看:
- 使用模式格式化货币时, 是否使用正确的数字分隔符? https://stackoverflow.com/questions/19765009/does-fconvertnumber-use-the-right-number-separator-when-using-patterns-to-for/
- JSF 中的本地化,如何记住每个会话而不是每个请求/视图选择的区域设置 https://stackoverflow.com/questions/4830588/localization-in-jsf-how-to-remember-selected-locale-per-session-instead-of-per
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)