Форматирование двойника в JSF - PullRequest
11 голосов
/ 03 октября 2008

У меня проблема, аналогичная найденной здесь: JSF selectItem formatting label .

То, что я хочу сделать, это принять значение типа double для my и отобразить его с двумя десятичными знаками. Можно ли это сделать простым способом?

Я пытался использовать, но, похоже, он применяется к значению inputText, отправляемому на сервер, а не к начальному значению в поле ввода.

Пока мой код:

<h:inputText id="december" value="#{budgetMB.december}" onchange="setDirty()" styleClass="StandardBlack">
    <f:convertNumber maxFractionDigits="2" groupingUsed="false" />
</h:inputText>

РЕДАКТИРОВАТЬ: приведенный выше код на самом деле работает. Я был одурачен JDeveloper, который не обновлял страницу jsp, даже когда я сделал явную перестройку своего проекта и перезапустил встроенный сервер OC4J. Однако после перезагрузки моего компьютера все было хорошо.

Ответы [ 3 ]

14 голосов
/ 03 октября 2008

Если я не неправильно понимаю ваше требование, я смог добиться форматирования значения в поле ввода во время рендеринга представления с помощью:

<h:inputText id="text1" value="#{...}">
    <f:convertNumber pattern="#,###,##0.00"/>
</h:inputText>

Я использовал стандартные компоненты Faces в Eclipse под своим торговым знаком, поэтому я предполагаю, что атрибут pattern является частью стандартного JSF.

1 голос
/ 03 октября 2008

Если вы пытаетесь изменить значение вводимого текстового поля на экране (чтобы исправить ввод данных пользователем), вам, вероятно, следует рассмотреть возможность использования одной из JJF-инфраструктур ajax, таких как Rich Faces,

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

<h:inputText id="december" value="#{budgetMB.december}" styleClass="StandardBlack">
  <f:convertNumber maxFractionDigits="2" groupingUsed="false" />
  <a4j:support event="onblur" reRender="december" />
</h:inputText>

Я не проверял это, но думаю, что это может сработать.

0 голосов
/ 12 октября 2013

Кажется, вы на самом деле форматируете валюту. Уже существует специальный форматер для обработки валют, которым вы можете назначить множество опций:

<f:convertNumber type="currency" />

Некоторые интересные атрибуты этого тега: locale, currencyCode, integerOnly, currencySymbol и pattern.

...