Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

jsf - Set decimal separator when using f:convertNumber

I want to know how to set the default decimal separator on my JSF application. I have some <h:inputText> that I need to format as money, with 2 decimals. Right now the decimal separator used by default is the comma , and this gives me an error when I do some operations on save. I don't know if I can set the decimal separator to be used everytime that I use <f:convertNumber> tag.

I tried to use this:

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

but it still sets the comma as decimal separator.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

The default decimal separator depends on the locale used. You can set it in 2 ways:

  1. On a per-view basis by the locale attribute of the <f:view> tag:

     <f:view locale="#{bean.locale}">
    
  2. On a per-converter basis by the locale attribute of the <f:convertNumber> tag:

     <f:convertNumber locale="#{bean.locale}" />
    

It's unclear what locale you're targeting, but the use of . as fraction separator is typical for US dollars with a locale of en-US, for example. So you need to set it as such:

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

It can also be obtained from a java.util.Locale bean property.

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

Note that I used type="currency", that's more self-documenting.

See also:


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...