В JSF « f: convertNumber » является стандартным конвертером, который преобразует строку в указанный формат «число». Кроме того, он также используется в качестве валидатора, чтобы убедиться, что входное значение является допустимым числом. Смотрите следующие часто используемые примеры:
<h:outputText value="#{receipt.amount}" > <f:convertNumber minFractionDigits="2"/> </h:outputText>
Отобразите значение как «0,10».
-
2. атрибут шаблона **
<h:outputText value="#{receipt.amount}" > <f:convertNumber pattern="#0.000"/> </h:outputText>
Отобразите значение как «0.100».
-
Примечание ** Формат шаблона определен в java.text.DecimalFormat .
-
3. атрибут currencyCode **
<h:outputText value="#{receipt.amount}" > <f:convertNumber currencyCode="GBP" type="currency"/> </h:outputText>
Отобразите значение как «GBP0.10».
-
Примечание Код валюты определяется в http://www.iso.org/iso/support/currency codes list-1.htm[ISO 4217]. Чтобы использовать атрибут currencyCode, атрибут type должен измениться на « currency ** ».
-
4. тип = «процент» атрибут **
<h:outputText value="#{receipt.amount}" > <f:convertNumber type="percent"/> </h:outputText>
Отобразите значение как «10%».
P.S Для других атрибутов f: convertNumber вы можете посетить этот JSF «f: convertNumber» JavaDoc .
Пример JSF f: convertNumber
Следующий полный пример JSF 2.0 показывает, как использовать тег « f: convertNumber ».
1. Управляемый Бин
Простой управляемый бин со свойством «количество».
package com.mkyong; import java.io.Serializable; import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; @ManagedBean(name="receipt") @SessionScoped public class ReceiptBean implements Serializable{ double amount; public double getAmount() { return amount; } public void setAmount(double amount) { this.amount = amount; } }
2. Примеры f: convertNumber
Страница JSF XHTML для использования тега « f: convertNumber » для проверки, а также формирователя строк.
-
Default.xhtml **
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core" > <h:body> <h1>JSF 2 convertNumber example</h1> <h:form> <h:panelGrid columns="3"> Amount : <h:inputText id="amount" value="#{receipt.amount}" size="20" required="true" label="Amount" > <!-- display in at least 2 decimal points --> <f:convertNumber minFractionDigits="2"/> </h:inputText> <h:message for="amount" style="color:red"/> </h:panelGrid> <h:commandButton value="Submit" action="receipt"/> </h:form> </h:body> </html>
-
Receipt.xhtml **
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core" > <h:body> <h1>JSF 2 convertNumber example</h1> <ol> <li> Amount[minFractionDigits="2"]: <h:outputText value="#{receipt.amount}" > <f:convertNumber minFractionDigits="2"/> </h:outputText> </li> <li> Amount[pattern="#0.000"]: <h:outputText value="#{receipt.amount}" > <f:convertNumber pattern="#0.000"/> </h:outputText> </li> <li> Amount[currencySymbol="$"]: <h:outputText value="#{receipt.amount}"> <f:convertNumber currencySymbol="$" type="currency"/> </h:outputText> </li> <li> Amount[currencyCode="GBP"]: <h:outputText value="#{receipt.amount}" > <f:convertNumber currencyCode="GBP" type="currency"/> </h:outputText> </li> <li> Amount[type="percent"]: <h:outputText value="#{receipt.amount}" > <f:convertNumber type="percent"/> </h:outputText> </li> </ol> </h:body> </html>
3. Демо
Если пользователь введет неверный числовой формат, отобразится сообщение об ошибке.
Изображение://wp-content/uploads/2010/10/jsf2-ConvertNumber-Example-1.png[jsf2-ConvertNumber-Пример-1, название = "jsf2-ConvertNumber-Пример-1", ширина = 577, высота = 360]
Пользователь вводит значение « 0,01 » и нажимает кнопку «отправить».
Изображение://wp-content/uploads/2010/10/jsf2-ConvertNumber-Example-2.png[jsf2-ConvertNumber-Пример-2, название = "jsf2-ConvertNumber-Пример-2", ширина = 577, высота = 360]
Отобразить отправленное значение в другом формате.
Изображение://wp-content/uploads/2010/10/jsf2-ConvertNumber-Example-3.png[jsf2-ConvertNumber-пример-3, название = "jsf2-ConvertNumber-пример-3", ширина = 577, высота = 360]
Скачать исходный код
Загрузить его - ссылка://wp-content/uploads/2010/10/JSF-2-ConvertNumber-Example.zip[JSF-2-ConvertNumber-Example.zip](10 КБ)