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

Osc*_*ron 8 jsf numbers decimal converter separator

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

我试着用这个:

<f:convertNumber pattern="########0.00" groupingUsed="false" />
Run Code Online (Sandbox Code Playgroud)

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

Bal*_*usC 13

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

  1. 在每个视图的基础上,标签的locale属性<f:view>:

    <f:view locale="#{bean.locale}">
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在每个转换器的基础上,标签的locale属性<f:convertNumber>:

    <f:convertNumber locale="#{bean.locale}" />
    
    Run Code Online (Sandbox Code Playgroud)

目前还不清楚您所针对的区域设置,但使用.分数分隔符对于美元来说是典型的en-US,例如,区域设置.所以你需要设置它:

<f:convertNumber type="currency" currencySymbol="$" locale="en-US" />
Run Code Online (Sandbox Code Playgroud)

它也可以从java.util.Localebean属性中获得.

<f:convertNumber type="currency" currencySymbol="$" locale="#{bean.locale}" />
Run Code Online (Sandbox Code Playgroud)

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

也可以看看: