Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
enseignement:d35:tp:jsf [2018/11/09 15:49] – Emmanuel Bruno | enseignement:d35:tp:jsf [2023/09/20 18:52] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== D35 - TP4 - JSF ====== | ||
+ | L' | ||
+ | |||
+ | Quand des projets présentent une structure complexe et répétitive (ce qui est le cas avec JEE), Maven offre un outils très puissant les archetypes (modèles de projets). Nous allons voir qu'il est très simple de créer ses propres modèles. | ||
+ | |||
+ | Il faut tout d' | ||
+ | < | ||
+ | git clone git@github.com: | ||
+ | cd simplejsf | ||
+ | </ | ||
+ | |||
+ | Ce projet de base de peut ensuite être modifié pour être un modèle le plus général possible. | ||
+ | La création d'un archetype est très simple (cf. [[maven: | ||
+ | < | ||
+ | mvn clean archetype: | ||
+ | cd target/ | ||
+ | </ | ||
+ | |||
+ | L' | ||
+ | < | ||
+ | mvn clean install | ||
+ | </ | ||
+ | |||
+ | Ensuite autant de projets que l'on souhaite peuvent être créés à partir de l' | ||
+ | < | ||
+ | mvn archetype: | ||
+ | -DarchetypeCatalog=local \ | ||
+ | -DgroupId=fr.univtln.d35.hellojsf \ | ||
+ | -DartifactId=hellojsf | ||
+ | -Dversion=1.0-SNAPSHOT \ | ||
+ | -DarchetypeGroupId=fr.univtln.d35.hellojsf \ | ||
+ | -DarchetypeArtifactId=hellojsf-archetype | ||
+ | </ | ||
+ | |||
+ | Pour pouvoir exécuter cette application web, il faut maintenant la déployer dans un serveur d' | ||
+ | |||
+ | <note warning> | ||
+ | Attention actuellement, | ||
+ | < | ||
+ | export MAVEN_HOME=~/ | ||
+ | export PATH=$MAVEN_HOME/ | ||
+ | mvn -version | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | L' | ||
+ | < | ||
+ | cd hellojsf | ||
+ | mvn package embedded-glassfish: | ||
+ | </ | ||
+ | |||
+ | <note tip> | ||
+ | Exécuter et tester l' | ||
+ | </ | ||
+ | |||
+ | ===== Etude de Hello JSF ===== | ||
+ | Le projet qui vient d' | ||
+ | |||
+ | La configuration de base de projet est indiquée dans le '' | ||
+ | |||
+ | JSF s' | ||
+ | |||
+ | ==== Le modèle ==== | ||
+ | Habituellement le modèle est composé de POJO Java, d' | ||
+ | |||
+ | ==== Le contrôleur ==== | ||
+ | Le contrôleur est composé de deux parties. | ||
+ | |||
+ | Un servlet Java qui assure la communication Navigateur web/Java. Celle-ci est générée automatiquement et configurée dans le fichier '' | ||
+ | |||
+ | La classe '' | ||
+ | |||
+ | La cycle de vie du bean est annoté par '' | ||
+ | |||
+ | ==== La vue ==== | ||
+ | Avec JSF, la vue est composé de documents HTML utilisant un langage étendu et extensible. Ces documents sont appelés des facelets. | ||
+ | |||
+ | Le document '' | ||
+ | |||
+ | Le document '' | ||
+ | |||
+ | ===== Un exercice : ajouter un Logout ===== | ||
+ | Ajouter la méthode suivante au contrôleur. | ||
+ | <code java> | ||
+ | public void logout() throws IOException { | ||
+ | ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); | ||
+ | ec.invalidateSession(); | ||
+ | ec.redirect(ec.getRequestContextPath() + "/ | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Modifier la vue pour ajouter un bouton logout dans le template qui appelle cette méthode sur une instance du contrôleur. | ||
+ | ===== Mise en place de l' | ||
+ | Dans ce cadre de ces TP nous utiliserons le serveur d' | ||
+ | |||
+ | < | ||
+ | mvn package && asadmin redeploy --name hellojsf target/ | ||
+ | </ | ||
+ | |||
+ | <note tip> | ||
+ | Déployer l' | ||
+ | </ | ||
+ | |||
+ | Il est aussi possible d' | ||
+ | |||
+ | Pour une utilisation avancée, un framework appelé [[http:// | ||
+ | |||
+ | ===== JSF et EJBs ===== | ||
+ | Créer un projet JSF à partir de l' | ||
+ | < | ||
+ | mvn archetype: | ||
+ | -DarchetypeCatalog=local \ | ||
+ | -DgroupId=fr.univtln.d35.hellojsf \ | ||
+ | -DartifactId=hellojsf | ||
+ | -Dversion=1.0-SNAPSHOT \ | ||
+ | -DarchetypeGroupId=fr.univtln.d35.hellojsf \ | ||
+ | -DarchetypeArtifactId=hellojsf-archetype | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | Ajouter le projet EJB comme une dépendance du projet JSF. Injecter une instance de '' | ||
+ | |||
+ | Le projet peut être testé avec '' | ||
+ | |||
+ | < | ||
+ | Transformer la classe '' | ||
+ | Adapter le backing bean pour supprimer tout les traitement " | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Pour aller plus loin ===== | ||
+ | Vous pouvez maintenant approfondir vos connaissances en suivant les parties suivantes du tutoriel de JavaEE7 : | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | En utilisant les concepts étudiés mettez en place une Ihm Web permettant de créer des instances, de consulter et d' | ||
+ | |||
+ | {{tag> | ||
+ | |||
---- struct data ---- | ---- struct data ---- |