IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Guide pas à pas de l'utilisation de JBoss tools pour le développement JSF

Date de publication : 30/10/08 , Date de mise à jour : 12/11/08

Par Lotfi Mellouk
 

Cet article présente l'utilisation de JBoss tools pour faciliter et industrialiser le développement d'applications web avec JSF

I. Introduction
I-A. Présentation de JBoss Tools
I-A-1. Installation de JBoss tools
I-A-1-a. Compatibilités système
I-A-1-b. Installation
II. Présentation des outils JBoss tools pour JSF
II-A. La perspective Web development
II-B. La palette JBoss tools
II-C. Editeur Graphique
II-D. Vue du fichier de configuration de JSF
II-E. Assistant du contenu du code source
II-F. Vérificateur et reporteur d'erreur
II-G. Autres éditeurs
II-H. Présentation des nouveautés de la version 3.0 de JBoss tools
III. Guide de création d'un nouveau projet JSF
III-A. Création d'un nouveau projet
III-B. Première page JSF
III-C. Ajouter un managedBean
III-D. Ajouter une règle de navigation
III-E. Importer un projet existant
III-F. Utilisation avec un projet déjà présent dans le workspace
III-G. Créer un Converter
III-H. Créer un Validator
IV. Customiser l'utilisation de JBoss Tools
IV-A. Créer son propre template de projet
IV-B. Ajouter une librairie de tag
IV-C. Créer son propre template de page
IV-D. Support de Facelets


I. Introduction


I-A. Présentation de JBoss Tools

JBoss tools est un ensemble de plugins Eclipse pour le développement J2EE, il inclut les produits suivant:

  • Exadel Studio Product : passé sous le giron de JBoss pour le développement JSF,
  • Hibernate tools : permet de générer les fichier de mapping hibernate ainsi que les classes DAO en se connectant à la source de données,
  • JBoss jBPM tools : fournit les outils pour modéliser , exécuter, et monitorer les processus métier. De plus, il permet de faciliter le développement de services web WSDL et des processus métier avec jPDL(jBPM Process Definition Language) et BPEL (Business Process Execution Language)
  • Drools IDE : pour le développement des règles métier pour le moteur de règles métier Drools
  • JBoss Application Server tools : pour la gestion du serveur d'application JBoss
  • JBoss Seam tools : pour l'utilisation du framework JBoss Seam
JBoss tools supporte nativement les environnements: JSF-RI, MyFaces, Richfaces, JBoss Seam, Facelets, Shale.

JBoss tools est donc un outil puissant qui fait partie des meilleurs outils open source pour le développement JSF.


I-A-1. Installation de JBoss tools


I-A-1-a. Compatibilités système


  • Java: Java 5.0 ou plus
  • Système d'exploitation: Window, Linux.
  • Plug-ins: JBoss tools contient tous les plugins nécessaires à son utilisation, l'installation vient avec les plugings suivants:


    1. WTP runtime
    2. GEF runtime
    3. JEM runtime
    4. EMF & SDO runtime
    5. XSD runtime

I-A-1-b. Installation

JBoss tools est proposé en téléchargement sur le site suivant, il est possible d'installer seulement le module de développement JSF, ou de prendre tout le package JBoss tools.
Pour installer le plugin, il suffit de télécharger l'archive et la dézipper dans le dossier d'installation de Eclipse.

warning Il est important de vérifier la compatibilité de la version de JBoss tools avec la version d'Eclipse.
Pour l'installation à l'aide du site de mise à jour d'Eclipse : sélectionnez Help/Software updates/Add Site
Ajouter le lien suivant pour la version stable: http://download.jboss.org/jbosstools/updates/stable
Pour la version de développement, utile pour la dérnière version d'Eclipse : http://download.jboss.org/jbosstools/updates/development

Pour vérifier l'installation sélectionnez Window/Open Perspective/Other/Web development


II. Présentation des outils JBoss tools pour JSF


II-A. La perspective Web development

La perspective web development contient le plan de travail pour un projet web. Pour ouvrir cette perspective : Window/Open perspective/Web development


II-B. La palette JBoss tools

La palette JBoss tools rassemble les librairies de tags JSF, Richfaces, Facelets et JBoss seam, il est possible d'ajouter d'autres librairies à la palette.

Palette

II-C. Editeur Graphique

Un éditeur pour pages JSF de type WYSIWYG est disponible pour aider au développement.



II-D. Vue du fichier de configuration de JSF

JBoss toos fournit un puissant éditeur du fichier de configuration faces-config.xml, il contient trois modes:

  • Diagram Visialise le workflow de navigation

  • Tree Contient tous les éléments du faces-config avec la possibilité de réaliser les opérations d'ajout/suppression/modification de chaque élément

  • Source Le code source du faces-config.

II-E. Assistant du contenu du code source

Dans tous les éditeurs du code source, un assistant est disponible. Il est lancé lorsqu'on commence à écrire, sinon, on peut le solliciter en utilisant CTRL-ESPACE. Voici un exemple dans le code source du web.xml, comme ce qui est proposé en natif dans WTP.


II-F. Vérificateur et reporteur d'erreur

JBoss tools permet de détecter les erreurs dans le faces-config, le web.xml ou les pages JSP. Il permet également de détécter les classes mal définies, une property d'un bean qui n'a pas de getter, ou une erreur de parsing des fichiers XML. Il est possible de définir les niveaux de vérification de JBoss tools, dans Window/Preferences/JBoss Tools/Web, Verification.

Il est possible également de faire une vérification explicite en faisant un clic-droit sur un projet JBoss Tools JSF et en séléctionnant ensuite verify :


II-G. Autres éditeurs

D'autres éditeurs très intéressants sont fournis avec JBoss Tools comme :

  • Editeur XML
  • Editeur Graphique de Properties
  • Editeur Graphique de TLD
  • Editeur Graphique de fichier de description de l'application Web (web.xml)
  • Editeur CSS
  • Editeur JavaScript
  • Visualiseur d'Image
  • Editeur XSD
  • Editeur WSDL

II-H. Présentation des nouveautés de la version 3.0 de JBoss tools

JBoss Tools 3 est disponible depuis le 31 octobre 2008 en version Beta, cette version est la première compatible avec Eclipse 3.4/Ganymede, pour l'installer, il suffit d'ajouter le site des versions en cours développement au gestionnaire de mise à jour d'Eclipse, ou la télécharger manuellement à l'adresse suivante.

En ce qui concerne le développement JSF, les nouveautés concerne essentiellement l'éditeur visuel. Les problèmes rencontrés avec la version 2 sont pour la plupart corrigés. Parmi les nouvelles caractéristiques de la version 3.0, on peut citer :

  • Amélioration de la rapidité de l'éditeur visuel. Il est maintenant possible d'écrire directement et aisément dans l'éditeur visuel.
  • Editeur de classe CSS: un nouvel assistant de classe CSS est proposé, pour l'utiliser:
    1. Faire un clic droit sur le composant dans l'éditeur visuel et sélectionner ses attributs.



    2. Choisir l'attribut styleClass, ensuite, cliquer sur le bouton d'aide à la saisie qui s'affiche sur la droite.



    3. Choisir le fichier CSS, une classe de style à modifier, ou créer une nouvelle .



    L'assistant CSS peut être solliciter dans l'attribut styleClass d'un composant sélectionné dans la palette ou directement : File/New/CSS class ou File/New/Other.




  • Amélioration de l'assistant de code JSF: Les problèmes rencontrés dans l'ancienne version sont en cours de correction, comme, la proposition de composants JSF à l'intérieur de l'attribut jsfc de Facelets



  • Affichage des tags non visuel: L'éditeur propose l'affichage de composants non visuels :
    Lorsque cet affichage est choisi, les composants non visuels sont affichés ce qui permet au développeur de les localiser facilement et les sélectionner avec un simple clic.
  • Affichage des messages issus du fichier de ressources: les dernières versions de JBoss tools ne permettaient pas de visualiser la valeur des clés de fichiers de ressources, alors que cette possibilité existait dans l'ancienne version du produit tenu par Exadel. Ce problème est corrigé dans la version 3.
  • Support de l'ouverture de fichiers inclus à l'aide des tags a4j:include et rich:insert, comme pour le tag Facelets ui:include, l'assistant permet d'accéder directement au fichiers inclus à l'aide de l'attribut src par l'utilisation de la touche F3 ou de CTRL+ clic.
  • Support de la complétion pour d'avantage de tags JSF notamment les tags JSF core.
  • La palette change de look et contient de nouvelles icones pour la librairie ajax4jsf et Richfaces.



  • Support des nouveaux tags Richfaces par l'editeur visuel: rich:hotKey, rich:ajaxValidator, rich:graphValidator, rich:beanValidator, rich:extendedDataTable.
  • Support des nouveaux tags JSF 2: h:body, h:head, h:outputscript, h:outputstyle
On peut regretter néanmoins une régression de l'éditeur de code JSF lors du passage de la version d'Exadel compatible avec Eclipse 3.2 au nouvelles versions JBoss tools, certains bugs ne sont toujours pas corrigés dans la version 3.0. Par exemple, dans la saisie des tags JSF ou Richfaces, l'éditeur ne filtre pas les valeurs disponibles dans l'expression EL.



III. Guide de création d'un nouveau projet JSF


III-A. Création d'un nouveau projet

Nous allons utiliser l'assistant de création d'un nouveau projet JSF:

Clic droit sur la vue Web project, puis, séléctionner Create New JSF project :


Ajouter le nom du projet, l'environnement JSF et le template. Nous allons choisir l'implémentation JSF 1.1 avec les librairies.


L'assistant nous propose le choix de la version de l'implémentation JSF : JSF 1.1 ou 1.2 ainsi que myfaces 1.1.4.

La template est le type de gabarit du projet crée, les templates proposées sont :

JSFBlank: Création d'un projet web standard avec les capacités JSF

JSFKickStart: Création d'un projet JSF standard avec un exemple prêt à l'emploi.

With/Without Libs: Les deux templates sont disponibles avec une version qui inclut les librairies JSF dans le dossier WEB-INF/libs WithLibs et une autre sans les librairies JSF withoutLibs. Il est néanmoins possible d'ajouter son propre template. Lien à ajouter

Déclarer la version de l'api des servlet et le serveur de déploiement:


Le projet JSF est créé avec les librairies nécessaires, nous allons maintenant créer une nouvelle page JSF.


III-B. Première page JSF

Création d'un nouveau fichier JSP:
On fait un clic droit sur le dossier WebContent, New, File, et on choisi JSP file.


Choix de template:


L'assistant nous propose de définir le template de page, les templates proposés sont:
Blank: Une page JSP vide
JSFBasePage: Page JSF avec la saisie des librairies de tags à utiliser:
JSPRedirect: Une page de redirection.

Il est possible de créer sa propre page de template. Lien ci-dessous.

Nous allons choisir JSFBasePage, et nous sélectionnerons ensuite les tags utilisés dans la page, JSF core et JSF HTML. Notre page contient donc:
JSFBasePage

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
	<head>
		<title></title>
	</head>
	<body>
		<f:view>
			
			
		</f:view>
	</body>	
</html>  
Nous souhaitons maintenant afficher un message sur la page, nous pouvons procéder de deux manières :

En utilisant la palette: utiliser la palette Jbos Tools, on sélectionne JSF HTML dans la palette, et on fait un clic sur outputText

En utilisant l'éditeur: Il suffit de commencer d'écrire 'h:out' et l'éditeur propose la liste des composants qui correspondent aux premières lettres tapées.

Deployer l'application:

Pour déployer notre application,on l'ajoute dans les modules web dans la perspective J2EE/Server, ou on clique droit sur le projet et on fait Run on Server. Le démarrage et l'arrêt du serveur peut se faire à l'aide de:

Le résultat:



III-C. Ajouter un managedBean

Nous allons utiliser l'éditeur du fichier de configuration de JSF pour ajouter un nouveau managedBean.

Ouvrir le fichier faces-config.xml qui se trouve dans : le dossier configuration

Aller dans l'onglet Tree, et clic droit sur ManagedBeans et faire New ManagedBean

Saisir les paramètres du managedBean : l'assistant de création du managedBean nous propose de saisir le scope, la classe et le nom du managedBean, on coche generate Source Code, la classe sera générée dans le package défini.

Ajouter des properties: Nous allons maintenant ajouter les properties du bean, en cliquant sur le bouton Add dans l'éditeur du mangedBean

Si on ne connait pas le package exact de la classe, utiliser l'assistant en cliquant sur CTRL-ESPACE



III-D. Ajouter une règle de navigation

Nous allons créer la navigation entre la page login.jsp et index.jsp. Passons maintenant sur l'onglet Diagram de l'éditeur du faces-config


Clic droit dans l'éditeur, New View


On ajoute une page JSFBasedPage login.jsp

Dans le diagramme, on réalise un clic sur l'icône create New connection

On lie index.jsp à login.jsp

Il est possible de modifier le cas de navigation en double cliquant sur la connection


Ajouter une action dans la page login.jsp

<h:form>
	<h:panelGrid columns="2" cellspacing="5" cellpadding="5">
		<h:outputText value="Login" />
		<h:inputText value="#{compte.login}" />
		<h:outputText value="Mot de passe" />
		<h:inputSecret value="#{compte.password}" />
	</h:panelGrid>
	<h:commandLink value="#{compte.connect}"></h:commandLink>
</h:form>
</f:view>
Nous pouvons accéder directement à la propriété du bean en cliquant sur CTRL + lien sur la property

Ajouter la fonction de contrôle,dans la classe Compte en ajoutant la fonction connect:

public String connect(){ 
 return "index"; 
 }
Tester la navigation : nous avons créé un seul cas de navigation, en cliquant sur bouton Login, nous passons à page index.jsp.

Ajouter un cas de navigation : pour ajouter un autre cas de navigation, on ouvre l'éditeur de faces config et l'onglet Tree. Il est alors possible de créer une règle de navigation ou d'ajouter un cas de navigation à une règle existante.



III-E. Importer un projet existant

Si l'on souhaite utiliser JBoss tools avec un projet existant, un assistant d'import de projets est disponible dans la vue WebProject.
Cliquer droit dans la vue Web Project, ou utiliser le bouton import:


L'assistant nous demande l'endroit ou se situe le web.xml du projet à importer, ensuite, on saisit le nom du projet, les dossiers sources et le serveur de déploiement



III-F. Utilisation avec un projet déjà présent dans le workspace

Pour utiliser JBoss Tools avec un projet JSF qui existe déjà dans le workspace, il faut lui ajouter des capacités JSF: JSF capabilities. Pour cela, il faut faire un clic droit sur le projet en question puis séléctionner JBoss tools/add JSF capabilities :
Ensuite nous donnons l'adresse du web.xml et les dossiers web/sources ainsi que le serveur de déploiement comme pour l'import de projet.


III-G. Créer un Converter

  1. Editer le faces config, puis, passer dans l'onglet Tree

  2. Sélectionner Converters et cliquer sur Add ou par un clic droit sur Converters et ensuite New/Converter with Id

  3. Cliquer sur le lien Converter-Class pour créer la classe Si on clique sur Finish avant de créer la classe, une croix rouge apparait dans la déclaration du converter, on peut cliquer sur Converter-Class pour le créer
    On Crée la classe qui implémente l'interface javax.faces.convert.Converter
  4. Ajouter le code de conversion On peut maintenant définir la logique métier de notre Converter

III-H. Créer un Validator

De la même manière on peut créer un validator personnalisé en utilisant l'assistant


IV. Customiser l'utilisation de JBoss Tools


IV-A. Créer son propre template de projet

JBoss tools dispose d'un système de templates pour créer les nouveaux projets web. Il est parfois utile de définir son propre template, comme celui de Maven par exemple. Pour cela :

  1. Création du Template Dans l'explorateur de projet, clic droit sur le projet et sélectionner JBoss Tools JSF et Save As Template
  2. Ajouter l'implémentation
  3. Ajouter les préférences
    On choisit les dossiers et/ou librairies à ajouter dans le template.
  4. Choix des Templates Velocity
    JBoss tools prend en charge les template Velocity, il n'est pas obligatoire d'ajouter un fichier pour velocity, le template sera crée en cliquant sur Finish.
    Pour en savoir plus sur Velocity, consultez le site Apache Velocity
Maintenant, le template de projet est enregistré, nous pouvons l'utiliser dans la création ou l'import de nouveau projets


IV-B. Ajouter une librairie de tag

Il est possible d'ajouter d'autres librairies de tags autres que JSF et Richfaces, nous allons voir comment ajouter les librairies de Rcfaces .

  1. Ajouter les tags Rcfaces ou le jar qui les contient dans le projet
  2. Utiliser le bouton import dans la palette

  3. Sélection du fichier TLD L'assistant de création de tag nous propose de sélectionner le fichier TLD
  4. Choix des Tags L'assistant propose la liste des tags disponibles. Si la librairie n'est pas dans la liste, il faut vérifier que le projet contient bien le fichier TLD. Parfois, il sera nécessaire de redémarrer Eclipse.
  5. Ajouter un nouveau groupe de librairies On ajoute la librairie à un nouveau Groupe créé en cochant create New Group, en cliquant sur ok. On termine ainsi l'ajout de la nouvelle librairie.
On peut également ajouter une nouvelle librairie de Tag, à l'aide d'un glisser-déposer du fichier TLD de la vue WebProjects dans la palette JBoss Tools, l'assistant apparaissant comme avec le bouton import.


IV-C. Créer son propre template de page

Lorsque on ajoute une nouvelle page JSP, nous pouvons utiliser un template de page existant au lieu de créer une page vide. Nous allons voir comment définir notre une page template xhtml qui utilise Facelets.

  1. Sauvegarder la page en tant que Template Pour le faire, on doit se positionner dans la vue Web Project, on clic droit sur la page en question et on séléctionne Save as Template
  2. Définir le nom du template
Nous pouvons créer une page de Template dans les préférences Eclipse.

  1. Ouvrir les préférences Eclipse Windows/Preferences
  2. Sélectionner JSF Page dans la rubrique JBoss tools
  3. Séléctionner le fichier JSP Sélectionner le fichier en faisant un clic sur Browse...
Pour créer un nouveau fichier avec notre template de page, on choisit le template MyFaceletsPage lors de la création d'un nouvaeu fichier xhtml.



IV-D. Support de Facelets

JBoss tools propose nativement l'utilisation de Facelets, plusieurs outils sont à disposition développeur:

  1. Capacités Facelets Nous pouvons ajouter Facelets à un projet JSF en ajoutant Facelets Capabilities, pour cela:
    Clic droit sur le projet, JBoss Tools/add custom Capabilities...

    Ensuite on choisit Facelets
  2. Assistant de création d'un projet web. L'assistant de création de projet dispose nativement d'un template pour un projet Facelets avec l'implémentation JSF
  3. Assistant de création d'une page xhtml L'assistant de création d'une page xhtml dispose nativement d'un template de page Facelets
  4. Outils de la Palette La palette JBoss Tools dispose de tous les composants Facelets
  5. Assistant de code L'assistant de code propose aussi l'aide pour l'utilisation de l'attribut jsfc ainsi que les tags de Facelets, l'assitant devrait proposer tous les tags JSF à l'interieur de jsfc comme le proposait l'ancienne version avec Exadel Studio. Ce bug est en cours de correction il sera corrigé dans les prochaines versions.
  6. Editeur visuel L'editeur visuel prend en charge les Facelets et affiche la page en tenant compte des templates utilisés.


Valid XHTML 1.1!Valid CSS!

Copyright © 2008 Lotfi MELLOUK. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.