使用f:convertNumber时设置小数点分隔符

时间:2011-10-21 22:59:28

标签: jsf numbers decimal converter separator

我想知道如何在我的JSF应用程序上设置默认的小数点分隔符。我有一些<h:inputText>我需要格式化为金钱,有2位小数。现在,默认情况下使用的小数分隔符是逗号,,当我在保存时执行某些操作时,这会给我一个错误。我不知道每次使用<f:convertNumber>标签时是否可以设置小数点分隔符。

我试着用这个:

<f:convertNumber pattern="########0.00" groupingUsed="false" />

但它仍然将逗号设置为小数点分隔符。

1 个答案:

答案 0 :(得分:13)

默认小数分隔符取决于使用的语言环境。您可以通过两种方式进行设置:

  1. <f:view>标记的locale属性的基于每个视图的基础上:

    <f:view locale="#{bean.locale}">
    
  2. 基于<f:convertNumber>标记的locale属性在每个转换器的基础上:

    <f:convertNumber locale="#{bean.locale}" />
    
  3. 目前尚不清楚您要定位的区域设置,但使用.作为分数分隔符通常是美元,其区别为en-US。所以你需要设置它:

    <f:convertNumber type="currency" currencySymbol="$" locale="en-US" />
    

    它也可以从java.util.Locale bean属性获得。

    <f:convertNumber type="currency" currencySymbol="$" locale="#{bean.locale}" />
    

    请注意,我使用了type="currency",这更加自我记录。

    另见: