Вопрос по converter, java, jsf-2, richfaces – Отображение числа в 2-х точечном десятичном формате в формате jsf

13

Я использую JSF 2 и RichFaces 3. Здесь на рисунке, показанном ниже, числа отображаются в виде того, что они есть в базе данных.

enter image description here

Но я хочу отобразить их как6749395.20 если часть дроби есть и5095138.00 если нет дробной части.

На данный момент я попробовал что-то вроде этого.

<code> <rich:column>
    <f:facet name="header">
        <h:outputText value="Total Amount"/>
    </f:facet>
    <h:outputText value="#{rr[2]}">
        <f:convertNumber type="number" groupingUsed="true" minFractionDigits="2" pattern="#0.00"/>
    </h:outputText>
 </rich:column>
</code>

На самом деле я показываю их все вместе, но я пробовал со всеми из них, как все возможные комбинации сtype, groupingUsed, minFractionDigits а такжеpattern.

Почему это не работает? Как это вызвано и как я могу решить это?

Я попробовал это и вне таблицы данных, но главной проблемой был тип данных, и благодаря @BalusC он помог мне. Addicted
Ваш конвертер должен работать как положено.minFractionDigits="2" должно быть достаточно. Вы пробовали то же самое за пределами таблицы данных? Matt Handy

Ваш Ответ

1   ответ
36

Number вообще, напримерString, Затем вы в основном используете неправильный тип данных, которые он представляет. Чтобы представлять валюты в Java, вы должны использоватьBigDecimal, Кроме того, убедитесь, что тип в таблице базы данных правильный, то есть он должен быть не varchar, а десятичным.

После того как вы исправили тип данных,<f:convertNumber> будет работать так, как вы сказали. Обратите внимание, чтоpattern атрибут переопределитgroupingUsed а такжеminFractionDigits, Вы должны использовать либоpattern or другие. Также,type="number" уже используется по умолчанию, поэтому его можно удалить.

Итак, либо используйте

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

или же

<f:convertNumber groupingUsed="true" minFractionDigits="2" />

Обратите внимание, что они генерируют разные форматы. Вы, вероятно, хотите установить группировкуfalse.

Вы также можете использоватьtype="currency", он будет автоматически применять правильный шаблон в соответствии сUIViewRoot#getLocale():

<f:convertNumber type="currency" />

Смотрите такжедокументация библиотеки тегов иDecimalFormat Javadoc.

И с валютой имени, есть какой-нибудь метод, который я могу отобразить символ INR наряду с рупией, как я могу отобразить символ доллара ($). Addicted
на самом деле в моей базе данных они были числами, и я выбирал их в виде строки, а затем пытался отобразить их как число с каким-то шаблоном. Теперь я изменил его на arraylist. и теперь он отображает правильный и нужный формат. Спасибо, приятель. Большое спасибо ................ Addicted
Нет, спасибо, я тоже это понял ..... Addicted

Похожие вопросы