Beispiel für JSF 2 convertNumber

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.

<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.

jsf2-ConvertNumber-Example-1

Der Benutzer gibt einen " 0.01 " - Wert ein und klickt auf die Schaltfläche "Submit".

jsf2-ConvertNumber-Example-2

Zeigen Sie den übermittelten Wert in einem anderen Anzeigeformat an.

jsf2-ConvertNumber-Example-3

Quellcode herunterladen