Heim  >  Artikel  >  Java  >  JSF-Konverter

JSF-Konverter

WBOY
WBOYOriginal
2024-08-30 15:14:11536Durchsuche

In der JSF-Anwendung (JavaServer Faces) werden die Benutzereingaben mithilfe einer HTTP-Anfrage als Client-Anfrage an den Server gesendet. Diese Benutzereingaben werden als Werte bezeichnet. Diese Anforderungswerte werden in Form eines Strings an den Server gesendet. Die JSF-Anwendung verwendet jedoch verschiedene Datentypen wie int, float, double, String, Boolean, date usw. Daher müssen die Anforderungswerte vor der Verarbeitung in die entsprechenden Datentypen umgewandelt werden. Dieser Transformationsprozess wird als Konversion bezeichnet. In diesem Thema lernen wir etwas über JSF-Konverter.

WERBUNG Beliebter Kurs in dieser Kategorie JSF Java Server Faces – Lernpfad | 6-Kurs-Reihe

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Um die Konvertierung in der JSF-Anwendung durchzuführen, stellt das JSF-Framework Standardkonverter bereit. Diese Konverter werden als Tag in der Kern-Tag-Bibliothek von JSF bereitgestellt. Darüber hinaus können Sie Ihre eigenen Konverter erstellen, um die Anwendungsanforderungen zu erfüllen.  Diese Konverter werden als benutzerdefinierte Konverter bezeichnet.

Konverter-Tags

In der JSF-Anwendung müssen die von den Benutzern in die UI-Komponenten eingegebenen Daten in ein geeignetes Format konvertiert werden, bevor sie von einer Anwendung verarbeitet werden können. In der folgenden Tabelle sind die Standard-Tags aufgeführt, die von der JSF-Kern-Tag-Bibliothek zum Durchführen von Konvertierungen bereitgestellt werden.

JSF-Kerntags für die Datenkonvertierung –

f:converter – Dieses Tag wird verwendet, um der übergeordneten Instanzkomponente einen beliebigen Konverter hinzuzufügen.

Beispiel 

<f:converter converterId = "javax.faces.Integer"/>

f:convertNumber – Dieses Tag wird verwendet, um der übergeordneten Komponente eine „NumberConverter“-Instanz hinzuzufügen.

Beispiel 

<c:convertNumber type = "javax.faces.Integer"/>

f:convertDateTime – Dieses Tag wird verwendet, um der übergeordneten Komponente eine „DateTimeConverter“-Instanz hinzuzufügen.

Beispiel 

<f:convertDateTime pattern = "dd/mm/yyyy"/>

Das JSF-Framework bietet Standardkonverter für Zahlen und Datumsangaben. Manchmal müssen wir in einer Anwendung die Benutzereingabe in Zahlen- und Datumsdatentypen konvertieren, damit wir das JSF-Framework verwenden können, um Standardkonverter bereitzustellen. Alle Standardkonverter sind im JSF-Framework javax.faces.convertpackage enthalten. Alle Konverter werden implizit basierend auf dem Wert der Komponente angewendet. Wenn wir auf diese Konverter zugreifen möchten, können wir über die Konverter-ID darauf zugreifen.

JSF-Framework-Konverter

Die IntegerConverter-Klasse, die zum Konvertieren von Benutzereingabezeichenfolgenwerten in Werte vom Typ java.lang.Integer verwendet wird, und ihre Konverter-ID ist javax.faces.Integer.

Beispiel

<h:inputText id="age" converter="javax.faces.Integer" />

Die BigIntegerConverter-Klasse, die zum Konvertieren von Benutzereingabezeichenfolgenwerten in Werte vom Typ java.lang.BigInteger verwendet wird, und ihre Konverter-ID ist javax.faces.BigInteger.

Beispiel

<h:inputText id="age" converter="javax.faces.Integer" />

Die gleiche Methode kann für die verschiedenen Ganzzahltypen verwendet werden.

Die ShortConverter-Klasse, die verwendet wird, um Benutzereingabezeichenfolgenwerte in Werte vom Typ java.lang.Short zu konvertieren, und ihre Konverter-ID ist javax.faces.Short.

Die LongConverter-Klasse, die zum Konvertieren von Zeichenfolgenwerten der Benutzereingaben in Werte vom Typ „java.lang.Short“ verwendet wird, und deren Konverter-ID „javax.faces.Long“ ist.

Die NumberConverter-Klasse, mit der Benutzereingabezeichenfolgenwerte in Werte vom Typ java.lang.Number konvertiert werden. Die Konverter-ID lautet javax.faces.Number.

Beispiel

<h:outputText value="#{userBean.height}">
<f:convertNumber maxFractionDigits="2" />
</h:outputText>

Die Klasse „FloatConverter“, die zum Konvertieren von Zeichenfolgenwerten der Benutzereingaben in Werte vom Typ „java.lang.Float“ verwendet wird, und deren Konverter-ID „javax.faces.Float“ lautet.

Die BigDecimalConverter-Klasse, die verwendet wird, um Benutzereingabezeichenfolgenwerte in java.lang zu konvertieren. Werte vom Typ BigDecimal und die Konverter-ID ist javax.faces.BigDecimal.

Die DoubleConverter-Klasse, die verwendet wird, um Benutzereingabezeichenfolgenwerte in java.lang zu konvertieren. Double-Typ von Werten und seine Konverter-ID ist javax.faces.Double.

Die ByteConverter-Klasse, die zum Konvertieren von Benutzereingabezeichenfolgenwerten in Werte vom Typ java.lang.Byte verwendet wird, und ihre Konverter-ID ist javax.faces.Byte.

Die CharacterConverter-Klasse, die zum Konvertieren von Benutzereingabezeichenfolgenwerten in java.lang verwendet wird. Der Zeichentyp der Werte und seine Konverter-ID sind javax.faces.Character.

Die BooleanConverter-Klasse, die zum Konvertieren von Zeichenfolgenwerten der Benutzereingaben in Werte vom Typ „java.lang.Boolean“ verwendet wird, und deren Konverter-ID „javax.faces.Boolean“ lautet.

Die DateTimeConverter-Klasse, die zum Konvertieren von Benutzereingabezeichenfolgenwerten in java.lang verwendet wird. Werte vom Typ DateTime und die Konverter-ID sind javax.faces.Datetime.

The EnumConverter class which uses to convert user input string values into java.lang. Enum type of values and its conveter id is javax.faces.Enum.

1. convertDateTime  Tag

The JSF convertDateTime contains the following attributes to convert the Date time format.

  • dateStyle – This attribute specifies the formatting style for the date of a date string is to be formatted.
  • locale – This attribute specifies to represent a date in Locale format.
  • pattern – This attribute specifies the formatting pattern to be the format.
  • timeStyle – This attribute specifies the Predefined formatting style for the date of a date string is to be formatted.
  • timeZone – This attribute specifies the Time zone for the date of a date string is to be formatted.
  • type – This attribute specifies the date or/and time or both to be formatted.

Example

<h:inputText id="DOB" label = "Date of Birth" value="#{bean.DOB }">
<f:convertDateTime pattern="dd/mm/yyyy" />
</h:inputText>

2. convertNumber Tag

The JSF convertNumber contains the following attributes to convert Number format. currencyCode – This attribute specifies to apply the currency format.

  • currencySymbol – This attribute specifies to apply the currency format.
  • groupingUsed – This attribute specifies whether the formatted output has grouping separators or not.
  • integerOnly – This attribute specifies whether only an integer part format or not.
  • locale – This attribute specifies to represent the number in Locale format.
  • minFractionDigits – This attribute specifies the minimum number of digits in the fractional part.
  • maxFractionDigits – This attribute specifies the maximum number of digits in the fractional part.
  • minIntegerDigits – This attribute specifies the minimum number of digits in the integer part.
  • maxIntegerDigits – This attribute specifies the maximum number of digits in the integer part.
  • pattern – This attribute specifies the formatting pattern to be the format.
  • type – This attribute specifies whether the type of number, percent and currency.

Example

<h:outputText value = "#{bean.height}">
<f:convertNumber maxFractionDigits = "1" />
</h:outputText>

Let’s see an example of the JSF project.

Create index.xhtml with the following code.

<!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:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:form>
<h:outputLabel for="name">Name : </h:outputLabel>
<h:inputText id="name" value="#{Emp.name}"/><br/>
<h:outputLabel for="eid">Eid : </h:outputLabel>
<h:inputText id="eid" value="#{Emp.eid}">
<h:outputLabel for="sal">Salary : </h:outputLabel>
<h:inputText id="sal" value="#{Emp.sal}">
<f:converter converterId="javax.faces.Integer" />
</h:inputText><br/>
<h:commandButton action="disp.xhtml" value="Submit Query"/>
</h:form>
</html>

Create Emp.java class with the following code in the project.

package jsfp;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class Emp {
String name;
String eid;
int sal;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEid() {
return eid;
}
public void setEid(String eid) {
this.eid = eid;
}
public int getSal() {
return sal;
}
public void setSal(int sal) {
this.sal = sal;
}
}

Create disp.xhtml for the response with the following code.

<!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:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
<title>Reply Page</title>
</h:head>
<h:body>
<h:outputText value="Welcome #{Emp.name}. Your eid is #{Emp.eid}. Your Salary is #{Emp.sal}."/>
</h:body>
</html>

An output of the above project in the sequence is –

JSF-Konverter

You fill the details as below –

JSF-Konverter

Once you click the button the output is –

JSF-Konverter

Conclusion

The user inputs are sent to the server using an http request in the form of the string, the request values to be processed first need to be transformed into the appropriate data types such as int, float, double, String, Boolean, date, and so on by using the JSF Converters of JSF framework.

Das obige ist der detaillierte Inhalt vonJSF-Konverter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:J2EE-TechnologienNächster Artikel:J2EE-Technologien