Установить десятичный разделитель при использовании f: convertNumber - PullRequest
8 голосов
/ 22 октября 2011

Я хочу знать, как установить десятичный разделитель по умолчанию в моем приложении JSF.У меня есть <h:inputText>, который мне нужно отформатировать как деньги, с двумя десятичными знаками.Прямо сейчас десятичный разделитель, используемый по умолчанию, - это запятая ,, и это вызывает ошибку при выполнении некоторых операций сохранения.Я не знаю, могу ли я установить десятичный разделитель, который будет использоваться каждый раз, когда я использую тег <f:convertNumber>.

Я пытался использовать это:

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

, но он все еще устанавливаетзапятая как десятичный разделитель.

1 Ответ

13 голосов
/ 22 октября 2011

Десятичный разделитель по умолчанию зависит от используемой локали. Вы можете установить его двумя способами:

  1. Для каждого просмотра по атрибуту locale тега <f:view>:

    <f:view locale="#{bean.locale}">
    
  2. Для каждого конвертера по атрибуту locale тега <f:convertNumber>:

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

Неясно, на какой язык вы ориентируетесь, но использование . в качестве разделителя дроби типично для долларов США с языком, например, en-US. Поэтому вам нужно установить его так:

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

Его также можно получить из свойства боба java.util.Locale.

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

Обратите внимание, что я использовал type="currency", это больше самодокументируется.

Смотри также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...