In JSF ist " f: convertNumber " ein Standardkonverter, der String in ein angegebenes "Number" -Format konvertiert. Darüber hinaus wird es auch als Prüfer verwendet, um sicherzustellen, dass der Eingabewert eine gültige Zahl ist. Siehe folgende häufig verwendete Beispiele:
<h:outputText value="#{receipt.amount}" >
<f:convertNumber minFractionDigits="2"/>
</h:outputText>
Zeigen Sie den Wert als "0.10" an.
-
2. Musterattribut **
<h:outputText value="#{receipt.amount}" >
<f:convertNumber pattern="#0.000"/>
</h:outputText>
Zeigen Sie den Wert als "0,100" an.
-
Hinweis ** Das Musterformat ist in java.text.DecimalFormat definiert.
-
3. CurrencyCode-Attribut **
<h:outputText value="#{receipt.amount}" >
<f:convertNumber currencyCode="GBP" type="currency"/>
</h:outputText>
Zeigen Sie den Wert als "GBP0,10" an.
-
Hinweis + Der Währungscode ist in http://www.iso.org/iso/support/currency codes list-1.htm[ISO 4217]definiert. Um das CurrencyCode-Attribut verwenden zu können, muss das Typattribut in „ Currency ** “ geändert werden.
-
4. Typ = "Prozent" Attribut **
<h:outputText value="#{receipt.amount}" >
<f:convertNumber type="percent"/>
</h:outputText>
Zeigen Sie den Wert als "10%" an.
P.S Für andere "f: convertNumber" -Attribute können Sie diese JSF "f: convertNumber" besuchen. JavaDoc .
JSF f: convertNumber Beispiel
Das folgende vollständige JSF 2.0-Beispiel zeigt die Verwendung des Tags " f: convertNumber ".
1. Managed Bean
Eine einfache verwaltete Bean mit einer "Betrags" -Eigenschaft.
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 Beispiele
JSF-XHTML-Seite zum Verwenden des Tags " f: convertNumber " zur Validierung und auch zum String-Formatierer.
-
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>
-
Quittung.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. Demo
Wenn der Benutzer ein ungültiges Zahlenformat ausfüllt, zeigen Sie die Fehlermeldung an.
Der Benutzer gibt einen " 0.01 " - Wert ein und klickt auf die Schaltfläche "Submit".
Zeigen Sie den übermittelten Wert in einem anderen Anzeigeformat an.
Quellcode herunterladen
Download - JSF-2-ConvertNumber-Example.zip (10KB)
Referenz
2 convertNumber JavaDoc]. http://en.wikipedia.org/wiki/ISO__4217 [Wiki ISO 4217, aktuell
JavaDoc]