FC-Vélizy UVSQ
APPLICATION WEB JAVA EE AVEC JSF ET JPA
Jean-Jacques LE COZ niveau DU
Étape 1 : conception et implémentation de la classe Personne
Dans cette étape, le modèle de données qui interagit avec l'interface Homme-Machine web est
composé de la classe Personne.
Elle encapsule les données nom, prénom et courriel qui correspondent aux champs de saisie du
formulaire web.
La classe POJO Personne
public class Personne {
private String nom;
private String prenom;
private String courriel;
public Personne() {
super();
}
// autres constructeurs, get&set
1/21 UVSQ-FC-VÉLIZY JJLC
Étape 2 : conception et implémentation du formulaire de saisie
Chaque champ de saisie défini dans la page web JSF et qui correspond au formulaire est lié à une
donnée membre de la classe Personne par l'écriture :
#{ nom_du_composant_JSF.nom_de_la_donnée }
Lorsque l'information dans la page JSF correspond à un champ de saisie, le cadriciel (framework)
invoque la méthode set de la donnée membre. A l'inverse s'il s'agit d'une information présentée par
la page JSF, le cadriciel invoque la méthode get de la donnée membre correspondante.
Donc chaque classe de type ManagedBean doit respecter le standard JavaBean, c'est à dire avoir
une méthode get et une méthode set pour chacune de ses données membres.
2/21 UVSQ-FC-VÉLIZY JJLC
La classe Personne annotée ManagedBean avec un cycle de vie de type requête
@ManagedBean(name = "personne")
@RequestScoped
public class Personne {
private int idp;
private String nom;
private String prenom;
private String courriel;
public Personne() {
super();
}
public String enregistrer() {
return "confirmation";
}
// get&set
Pour que le cycle de vie des objets de type Personne soit pris en charge par le cadriciel JSF, il faut
que la classe possède l'annotation @ManagedBean des composants JSF.
La portée d'un composant JSF (ManagedBean), sa durée de vie dépend de l'annotation @XScoped.
Ici la portée est limitée à la requête HTTP. L'annotation est donc @RequestScoped.
La page JSF index.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:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<f:view contentType="text/html"/>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>FORMULAIRE</title>
</head>
<body>
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="Nom :" />
<h:inputText value="#{personne.nom}"/>
<h:outputLabel value="Prénom :"/>
<h:inputText value="#{personne.prenom}"/>
<h:outputLabel value="Courriel :"/>
<h:inputText value="#{personne.courriel}"/>
<h:commandButton action="#{personne.enregistrer}" value="Enregistrer"/>
</h:panelGrid>
</h:form>
</body>
</html>
3/21 UVSQ-FC-VÉLIZY JJLC
obligatoire
correspond à un tableau HTML
avec 2 colonnes
Pour que l'application soit accessible à partir du navigateur, il faut modifier le fichier web.xml
généré par le wizard de l'IDE Eclipse for JAVA EE Developers (voir les annexes). La modification
est a effectuer dans la section <welcome-file> :
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
Ainsi le contexte de la page d'accueil (index.xhtml) correspond à celui du composant Faces Servlet
du framework JSF défini plus bas dans le fichier web.xml :
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
et qu'il ne faut pas modifier.
4/21 UVSQ-FC-VÉLIZY JJLC
Étape 3 : conception et implémentation de la page de confirmation
La page JSF confirmation.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:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<f:view contentType="text/html"/>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>CONFIRMATION</title>
</head>
<body>
<h:form>
<h:outputLabel value="Madame, Monsieur " />
<h:outputText value="#{personne.nom}"/>
<h:outputLabel value=" vous êtes bien enregistré(e)" />
<br></br>
<h:commandButton action="index" value="Retour"/>
</h:form>
</body>
</html>
5/21 UVSQ-FC-VÉLIZY JJLC
correspond à la page index.xhtml
1 / 21 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !