Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
enseignement:d35:tp:jsf [2016/11/23 12:56] Emmanuel Brunoenseignement:d35:tp:jsf [2023/09/20 18:52] (Version actuelle) – modification externe 127.0.0.1
Ligne 5: Ligne 5:
  
 Il faut tout d'abord obtenir ou créer un projet qui servira de modèle Il faut tout d'abord obtenir ou créer un projet qui servira de modèle
-<cli+<konsole
-git clone https://bruno@lsis.univ-tln.fr/redmine/bruno/samples/jsf/simplejsfgit.git simplejsf+git clone git@github.com:emmanuelbruno/simplejsf.git simplejsf
 cd simplejsf cd simplejsf
-</cli>+</konsole>
  
 Ce projet de base de peut ensuite être modifié pour être un modèle le plus général possible. 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:archetypegenerate]] pour plus de détails) La création d'un archetype est très simple (cf. [[maven:archetypegenerate]] pour plus de détails)
-<cli>+<konsole>
 mvn clean archetype:create-from-project mvn clean archetype:create-from-project
 cd target/generated-sources/archetype cd target/generated-sources/archetype
-</cli>+</konsole>
  
 L'archetype doit être installé dans le repository local avec d'être utilisé. Dans l'idéal l'archetype est publié sur un repository maven central ou privé (cf. [[maven:mavenrepository]]). L'archetype doit être installé dans le repository local avec d'être utilisé. Dans l'idéal l'archetype est publié sur un repository maven central ou privé (cf. [[maven:mavenrepository]]).
-<cli>+<konsole>
 mvn clean install mvn clean install
-</cli>+</konsole>
  
 Ensuite autant de projets que l'on souhaite peuvent être créés à partir de l'archetype, ** A partir d'un autre répertoire ** : Ensuite autant de projets que l'on souhaite peuvent être créés à partir de l'archetype, ** A partir d'un autre répertoire ** :
-<cli>+<code>
 mvn archetype:generate \ mvn archetype:generate \
     -DarchetypeCatalog=local \     -DarchetypeCatalog=local \
Ligne 31: Ligne 31:
     -DarchetypeGroupId=fr.univtln.d35.hellojsf \     -DarchetypeGroupId=fr.univtln.d35.hellojsf \
     -DarchetypeArtifactId=hellojsf-archetype     -DarchetypeArtifactId=hellojsf-archetype
-</cli>+</code>
  
 Pour pouvoir exécuter cette application web, il faut maintenant la déployer dans un serveur d'application. Une approche classique pour effectuer des tests est d'utiliser maven pour déployer automatiquement l'application dans un serveur d'application embarqué.  Pour pouvoir exécuter cette application web, il faut maintenant la déployer dans un serveur d'application. Une approche classique pour effectuer des tests est d'utiliser maven pour déployer automatiquement l'application dans un serveur d'application embarqué. 
Ligne 37: Ligne 37:
 <note warning> <note warning>
 Attention actuellement, une incompatibilité oblige l'utilisation de [[http://mir2.ovh.net/ftp.apache.org/dist/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz|maven 3.0.5]] Attention actuellement, une incompatibilité oblige l'utilisation de [[http://mir2.ovh.net/ftp.apache.org/dist/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz|maven 3.0.5]]
-<cli>+<konsole>
 export MAVEN_HOME=~/apache-maven-3.0.5 export MAVEN_HOME=~/apache-maven-3.0.5
 export PATH=$MAVEN_HOME/bin:$PATH export PATH=$MAVEN_HOME/bin:$PATH
 mvn -version mvn -version
-</cli>+</konsole>
 </note> </note>
  
 L'exécution est très simple. La première exécution prend du temps à cause de téléchargement de nombreuses librairies. L'exécution est très simple. La première exécution prend du temps à cause de téléchargement de nombreuses librairies.
-<cli>+<konsole>
 cd hellojsf cd hellojsf
 mvn package embedded-glassfish:run mvn package embedded-glassfish:run
-</cli>+</konsole>
  
 <note tip> <note tip>
Ligne 62: Ligne 62:
  
 ==== Le modèle ==== ==== Le modèle ====
-Habituellement le modèle est composant de POJO Java, d'entités (au sens JPA) et d'entreprise Java Beans qui implante les aspects métiers. Dans cet exemple simple, il n'y a pas de modèle, celui-ci sera étudié dans le prochain cours.+Habituellement le modèle est composé de POJO Java, d'entités (au sens JPA) et d'entreprise Java Beans qui implantent les aspects métiers. Dans cet exemple simple, il n'y a pas de modèle, celui-ci sera étudié dans le prochain cours.
  
 ==== Le contrôleur ==== ==== Le contrôleur ====
Ligne 71: Ligne 71:
 La classe ''src/main/java/fr/univtln/d35/hellojsf/HelloBean.java'' implante la partie contrôleur associée à un composant de la vue. Il s'agit ici d'un CDI Bean annoté par ''@Named'' qui peut être injecté ailleurs dans l'application et en particulier dans la vue au travers du langage EL. Il est aussi possible d'utiliser un backing bean (annoté par ManagedBean) mais son utilisation est moins générale et n'est plus recommandée. Attention, en cas d'utilisation de CDI, l'application ne peux plus être déployée directement dans de simples serveurs d'application web (tomcat par exemple) sans y ajouter les librairies nécessaire à CDI. La classe ''src/main/java/fr/univtln/d35/hellojsf/HelloBean.java'' implante la partie contrôleur associée à un composant de la vue. Il s'agit ici d'un CDI Bean annoté par ''@Named'' qui peut être injecté ailleurs dans l'application et en particulier dans la vue au travers du langage EL. Il est aussi possible d'utiliser un backing bean (annoté par ManagedBean) mais son utilisation est moins générale et n'est plus recommandée. Attention, en cas d'utilisation de CDI, l'application ne peux plus être déployée directement dans de simples serveurs d'application web (tomcat par exemple) sans y ajouter les librairies nécessaire à CDI.
  
-La cycle de vie du bean est annoté par ''@SessionScoped'' (cf. http://docs.oracle.com/javaee/7/tutorial/doc/cdi-basic008.htm).+La cycle de vie du bean est annoté par ''@SessionScoped'' (cf. https://docs.oracle.com/javaee/7/tutorial/cdi-basic008.htm).
  
 ==== La vue ==== ==== La vue ====
Ligne 94: Ligne 94:
 Dans ce cadre de ces TP nous utiliserons le serveur d'application JEE glassfish. Dans ce cadre de ces TP nous utiliserons le serveur d'application JEE glassfish.
  
-<cli>+<konsole>
 mvn package && asadmin redeploy --name hellojsf target/hellojsf.war                  mvn package && asadmin redeploy --name hellojsf target/hellojsf.war                 
-</cli>+</konsole>
  
 <note tip> <note tip>
Ligne 108: Ligne 108:
 ===== JSF et EJBs ===== ===== JSF et EJBs =====
 Créer un projet JSF à partir de l'archetype utilisé dans [[tp3]] : Créer un projet JSF à partir de l'archetype utilisé dans [[tp3]] :
-<cli>+<code>
  mvn archetype:generate \  mvn archetype:generate \
     -DarchetypeCatalog=local \     -DarchetypeCatalog=local \
Ligne 116: Ligne 116:
     -DarchetypeGroupId=fr.univtln.d35.hellojsf \     -DarchetypeGroupId=fr.univtln.d35.hellojsf \
     -DarchetypeArtifactId=hellojsf-archetype     -DarchetypeArtifactId=hellojsf-archetype
-</cli>+</code>
  
 <note> <note>
Ligne 132: Ligne 132:
 Vous pouvez maintenant approfondir vos connaissances en suivant les parties suivantes du tutoriel de JavaEE7 : Vous pouvez maintenant approfondir vos connaissances en suivant les parties suivantes du tutoriel de JavaEE7 :
  
-  * http://docs.oracle.com/javaee/7/tutorial/doc/jsf-intro.htm +  * https://docs.oracle.com/javaee/7/tutorial/jsf-intro.htm 
-  * http://docs.oracle.com/javaee/7/tutorial/doc/jsf-facelets.htm +  * https://docs.oracle.com/javaee/7/tutorial/jsf-facelets.htm 
-  * http://docs.oracle.com/javaee/7/tutorial/doc/jsf-el.htm+  * https://docs.oracle.com/javaee/7/tutorial/jsf-el.htm
  
 En utilisant les concepts étudiés mettez en place une Ihm Web permettant de créer des instances, de consulter et d'interagir avec les classes que vous avez mises en place lors du TP de révision ou pour votre mini projet.  En utilisant les concepts étudiés mettez en place une Ihm Web permettant de créer des instances, de consulter et d'interagir avec les classes que vous avez mises en place lors du TP de révision ou pour votre mini projet. 
Ligne 140: Ligne 140:
 {{tag>D35 TP Java JavaEE Glassfish }} {{tag>D35 TP Java JavaEE Glassfish }}
  
----- dataentry page ---- +
-type                 : TP +
-enseignement_tags    : D35 +
-technologie_tags     : JEE,Java,Glassfish, CDI, JSF +
-theme_tags           : Composants +
----- +
 ---- struct data ---- ---- struct data ----
 +metadata.level       : 
 +metadata.Type        : TP
 +metadata.Nom         : 
 +metadata.Enseignements : D35
 +metadata.Promotions  : M2
 +metadata.Technologies : JEE, Java, Glassfish, CDI, JSF
 +metadata.Thèmes     : Composantsn, IHM
 +metadata.Description : 
 ---- ----