Maison >Java >javaDidacticiel >Convertisseurs JSF
Dans l'application JSF (JavaServer Faces), les entrées utilisateur sont envoyées au serveur en utilisant une requête http comme requête client. Ces entrées utilisateur sont appelées valeurs. Ces valeurs de requête sont envoyées au serveur sous la forme d'une chaîne. Cependant, l'application JSF utilise différents types de données tels que int, float, double, String, Boolean, date, etc. Par conséquent, avant que les valeurs de la demande ne soient traitées, elles doivent être transformées dans les types de données appropriés. Ce processus de transformation est appelé conversion. Dans cette rubrique, nous allons en apprendre davantage sur les convertisseurs JSF.
PUBLICITÉ Cours populaire dans cette catégorie Visages du serveur Java JSF - Parcours d'apprentissage | Série de 6 coursCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Pour effectuer la conversion dans l'application JSF, le framework JSF fournit des convertisseurs standards. Ces convertisseurs sont fournis en tant que balise dans la bibliothèque de balises principale de JSF. De plus, vous pouvez créer vos propres convertisseurs pour répondre aux exigences de l'application. Ces convertisseurs sont appelés convertisseurs personnalisés.
Dans l'application JSF, les données saisies par les utilisateurs dans les composants de l'interface utilisateur doivent être converties dans un format approprié avant de pouvoir être traitées par une application. Le tableau suivant répertorie les balises standard fournies par la bibliothèque de balises principale JSF pour effectuer des conversions.
Balises principales JSF pour la conversion des données –
f:converter – Cette balise est utilisée pour ajouter un convertisseur arbitraire au composant parent de l'instance.
Exemple
<f:converter converterId = "javax.faces.Integer"/>
f:convertNumber – Cette balise est utilisée pour ajouter une instance « NumberConverter » au composant parent.
Exemple
<c:convertNumber type = "javax.faces.Integer"/>
f:convertDateTime – Cette balise est utilisée pour ajouter une instance « DateTimeConverter » au composant parent.
Exemple
<f:convertDateTime pattern = "dd/mm/yyyy"/>
Le framework JSF fournit des convertisseurs standards pour les nombres et les dates. Parfois, dans une application, nous devons convertir l'entrée utilisateur en types de données numériques et date, afin de pouvoir utiliser le framework JSF pour fournir des convertisseurs standard. Tous les convertisseurs standards contiennent dans le framework JSF javax.faces.convertpackage. Tous les convertisseurs sont implicitement appliqués en fonction de la valeur du composant et si nous voulons accéder à ces convertisseurs, nous pouvons y accéder par ID de convertisseur.
La classe IntegerConverter qui permet de convertir les valeurs de chaîne d'entrée de l'utilisateur en valeurs de type java.lang.Integer et son identifiant de convertisseur est javax.faces.Integer.
Exemple
<h:inputText id="age" converter="javax.faces.Integer" />
La classe BigIntegerConverter qui permet de convertir les valeurs de chaîne d'entrée utilisateur en valeurs de type java.lang.BigInteger et son identifiant de convertisseur est javax.faces.BigInteger.
Exemple
<h:inputText id="age" converter="javax.faces.Integer" />
La même manière peut être utilisée pour les différents types entiers.
La classe ShortConverter qui permet de convertir les valeurs de chaîne d'entrée utilisateur en java.lang.Short type de valeurs et son ID de convertisseur est javax.faces.Short.
La classe LongConverter qui permet de convertir les valeurs de chaîne d'entrée utilisateur en valeurs de type java.lang.Short et son identifiant de convertisseur est javax.faces.Long.
La classe NumberConverter qui permet de convertir les valeurs de chaîne d'entrée utilisateur en java.lang.Number type de valeurs et son ID de convertisseur est javax.faces.Number.
Exemple
<h:outputText value="#{userBean.height}"> <f:convertNumber maxFractionDigits="2" /> </h:outputText>
La classe FloatConverter qui permet de convertir les valeurs de chaîne d'entrée utilisateur en valeurs de type java.lang.Float et son ID de convertisseur est javax.faces.Float.
La classe BigDecimalConverter qui permet de convertir les valeurs de chaîne d'entrée utilisateur en java.lang. Le type de valeurs BigDecimal et son identifiant de convertisseur est javax.faces.BigDecimal.
La classe DoubleConverter qui permet de convertir les valeurs de chaîne d'entrée utilisateur en java.lang. Double type de valeurs et son ID de convertisseur est javax.faces.Double.
La classe ByteConverter qui permet de convertir les valeurs de chaîne d'entrée utilisateur en type java.lang.Byte de valeurs et son ID de convertisseur est javax.faces.Byte.
La classe CharacterConverter qui permet de convertir les valeurs de chaîne d'entrée utilisateur en java.lang. Le type de caractère des valeurs et son identifiant de convertisseur est javax.faces.Character.
La classe BooleanConverter qui permet de convertir les valeurs de chaîne d'entrée utilisateur en valeurs de type java.lang.Boolean et son identifiant de convertisseur est javax.faces.Boolean.
La classe DateTimeConverter qui permet de convertir les valeurs de chaîne d'entrée utilisateur en java.lang. Le type de valeurs DateTime et son identifiant de convertisseur est 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.
The JSF convertDateTime contains the following attributes to convert the Date time format.
Example
<h:inputText id="DOB" label = "Date of Birth" value="#{bean.DOB }"> <f:convertDateTime pattern="dd/mm/yyyy" /> </h:inputText>
The JSF convertNumber contains the following attributes to convert Number format. currencyCode – This attribute specifies to apply the currency format.
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 –
You fill the details as below –
Once you click the button the output is –
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.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!