Вопрос

У меня проблема, похожая на найденную здесь: Форматирование метки JSF selectItem .

То, что я хочу сделать, это принять значение типа 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. Однако после перезагрузки моего компьютера все было хорошо.

Это было полезно?

Решение

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

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

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

Другие советы

Если вы пытаетесь изменить значение вводимого текстового поля на экране (чтобы исправить ввод данных пользователем), вам, вероятно, следует рассмотреть возможность использования одной из 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>

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

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

<f:convertNumber type="currency" />

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top