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

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

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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 : plug-in Eclipse pour le développement web, passé sous le giron de JBoss pour enrichir JBoss tools.

  • 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 plugins 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 web et JSF, ou de prendre tout le package JBoss tools.
Pour installer le plugin, il suffit de télécharger l'archive et de la dézipper dans le dossier d'installation d'Eclipse.

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 derniè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.

Image non disponible

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 : Image non disponible

  • Diagram Visialise le workflow de navigation

    Image non disponible

  • 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

    Image non disponible

  • 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.

Image non disponible

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étecter 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.

Image non disponible

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 :

Image non disponible

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 de 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 concernent 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.

      Image non disponible

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

      Image non disponible

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

      Image non disponible

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

    Image non disponible

  • 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.

    Image non disponible

  • Affichage des tags non visuels : L'éditeur propose l'affichage de composants non visuels : Image non disponible
    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 fichier inclus à l'aide de l'attribut src par l'utilisation de la touche F3 ou de CTRL+ clic.

  • Support de la complétion pour davantage de tags JSF notamment les tags JSF core.

  • La palette change de look et contient de nouvelles icones pour la librairie ajax4jsf et Richfaces.

    Image non disponible

  • 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.

Image non disponible

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 :

Image non disponible

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

Image non disponible

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.

Le template est le type de gabarit du projet créé, les templates proposés 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.

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

Image non disponible

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 choisit JSP file.

Image non disponible

Choix de template :

Image non disponible

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.

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
Sélectionnez

<%@ 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.

Image non disponible

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

Image non disponible

Déployer 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 peuvent se faire à l'aide de :

Image non disponible

Le résultat :

Image non disponible

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

Image non disponible

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

Image non disponible

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.

Image non disponible

Ajouter des properties : nous allons maintenant ajouter les properties du bean, en cliquant sur le bouton Add dans l'éditeur du managedBean.
Image non disponible
Si on ne connait pas le package exact de la classe, utiliser l'assistant en cliquant sur CTRL-ESPACE .

Image non disponible

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.

Image non disponible

Clic droit dans l'éditeur, New View.

Image non disponible

On ajoute une page JSFBasedPage login.jsp.
Image non disponible

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

On lie index.jsp à login.jsp.
Image non disponible

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

Image non disponible

Ajouter une action dans la page login.jsp.

 
Sélectionnez

<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 :

 
Sélectionnez

public String connect(){ 
 return "index"; 
 }

Tester la navigation : nous avons créé un seul cas de navigation, en cliquant sur le 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.
Image non disponible
Image non disponible

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 :

Image non disponible

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.

Image non disponible

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 :

Image non disponible
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.

    Image non disponible

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

    Image non disponible

  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.


    Image non disponible

    On Crée la classe qui implémente l'interface javax.faces.convert.Converter.

    Image non disponible

  4. Ajouter le code de conversion. On peut maintenant définir la logique métier de notre Converter.

    Image non disponible

III-H. Créer un Validator

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

Image non disponible

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.

    Image non disponible


  2. Ajouter l'implémentation.

    Image non disponible


  3. Ajouter les préférences.

    Image non disponible


    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éé 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 nouveaux projets

IV-B. Ajouter une librairie de tags

Il est possible d'ajouter d'autres librairies de tags 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.

    Image non disponible


  3. Sélection du fichier TLD : l'assistant de création de tags nous propose de sélectionner le fichier TLD.


    Image non disponible

  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.


    Image non disponible

  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.


    Image non disponible

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.

    Image non disponible

  2. Définir le nom du template.

    Image non disponible

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.

    Image non disponible

  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 nouveau fichier xhtml.

Image non disponible

IV-D. Support de Facelets

JBoss tools propose nativement l'utilisation de Facelets, plusieurs outils sont à la disposition du 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...


    Image non disponible


    Ensuite on choisit Facelets.


    Image non disponible

  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.

    Image non disponible

  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.

    Image non disponible

  4. Outils de la Palette : la palette JBoss Tools dispose de tous les composants Facelets.

    Image non disponible

  5. Assistant de code : l'assistant de code propose aussi de l'aide pour l'utilisation de l'attribut jsfc ainsi que les tags de Facelets, l'assistant 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.

    Image non disponible


  6. Editeur visuel : l'editeur visuel prend en charge les Facelets et affiche la page en tenant compte des templates utilisés.

    Image non disponible

V. Remerciements

Mes remerciements les plus sincères pour :

  

Copyright © 2008 Lotfi MELLOUK. Aucune reproduction, même partielle, ne peut être faite de ce site et 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.