java.net member

Rechercher dans ce site

Showing posts with label jboss. Show all posts
Showing posts with label jboss. Show all posts

Développez en JSF2 sur JBoss 7 AS avec Eclipse – Partie 6.

>> 17 September 2012

Importer un projet et ajouter des capacités JSF2

 

1.Comment importer un projet JSF2 :

Pour importer un projet JSF (exporté par Export d'Eclipse).
Dans Web Projects (si pas visible Window > Show View > Web Projects) > Un clic sur l'icône Import JSF Project.




Une boîte de dialogue s'ouvre pour entrer un nom Project Name, pour le projet et rechercher le fichier web.xml du projet à importer en cliquant sur Browse. Cochez Create Eclipse project in Workspace.
Un clic sur Next


Attention :
Source Folder est vide par défaut, vous devez le renseigner. Vérifiez bien aussi l'emplacement des classes dans Classes Folder.

Le dossier des fichiers sources est sélectionné. J'ai corrigé ClassesFolder. Un clic sur Finish





















Le projet est importé






 

2.Ajouter des capacités JSF


Pour un projet Web dynamique (mais pas JSF2), il est possible de le transformer en JSF2.

Un clic droit sur le projet en question > Configure > add JSF capabilities

Note :
J'ai un projet, que j'ai appelé projet_non_jsf, contenant des servlets et des fichiers .jsp, etc.


Dans le dialogue qui s'ouvre un clic sur le lien
Further Configuration Available...


Vérifiez Context Root et Content directory (la racine du contenu Web). Je l'ai modifié pour devenir war). Cochez Generate web.xml deployment descriptor > un clic sur Next

Vérifiez que Disable Librray Configuration est sélectionnée. Gardez les autres options > Un clic sur OK


Note :
Si ne vous voulez pas utiliser les bibliothèques JSF2 fournies par JBoss, vous pouvez sélectionnez User Library et indiquez des  bibliothèques JSF2 de votre choix. Voyez un précédent article de cette série sur l’intégration de MyFaces2.

Après avoir validé les bibliothèques, on retourne au dialogue principal > cliquez sur les flèches à côté de custom.

Sélectionnez JavaServer Faces v2.1 Project > Un clic sur OK

Le projet est maintenant prêt pour le support JSF2. Testons

Ajoutez un fichier .xhtml au projet

Clic droit sur le projet > New > XHTML Page

Donnez un nom au fichier avec l'extension .xhtml. Un clic sur Next

Sélectionnez Blank JSF Page > un clic sur Finish pour créer le fichier

Le fichier est ouvert dans l'éditeur actif. Entrez un petit texte et sauvegardez.

Exécutez le projet comme projet JSF2

Clic droit sur le projet Run as > Run On Server


JBoss 7.1 Runtime Server est sélectionné > un clic sur Finish

Et voilà. Le projet est maintenant JSF2.





Read more...

Développez en JSF2 sur JBoss 7 AS avec Eclipse - Partie 5

>> 03 September 2012


Utiliser Apache MyFaces2

Comme nous l'avons déjà vu dans les précédents articles, on peut développer en JSF2 avec JBoss, sans rien installer, car JBoss dispose d'une implantation de JSF2, fournie par défaut. C'est Sun JSF RI ou "Mojarra", l'implantation de référence de Sun (Sun JSF Reference Implementation). Néanmoins, il est tout à fait possible d'utiliser une autre implantation de JSF2, comme Apache MyFaces 2.

Téléchargez MyFaces2

http://myfaces.apache.org/index.html
Commencez par télécharger la version, que vous souhaitez utiliser. Vous pouvez vérifier la signature et md5, comme mentionné sur le site. Dans la suite de l'article
MyFaces Core 2.1.8 est utilisé.





Décompressez l'archive téléchargé. On obtient plusieurs dossiers, nous allons nous intéresser au dossier "lib"

Créez un projet JSF2

File > New > Other




Sélectionnez Dynamic Web Project > Next



Donnez un nom à votre projet, gardez les options Target runtime et Dynamic web module version comme tel (ces options ont été sélectionnées, quand nous avons configuré JBoss AS, dans un précédent article). Un clic sur le bouton Modify


Sélectionnez JavaServer Faces v2.1 Project > Next


Un clic sur Next


Cochez Generate web.xml deployment descriptor > Next


Sous JSF Implentation Library > Sélectionnez User Library
Un clic sur l'icône Manage Libraries



Dans le dialogue User Libraries > Cliquez sur le bouton New...



Donnez un nom à la bibliothèque > un clic sur OK


Un clic sur le bouton Add External JARs...


Note :
Il est possible et selon vos besoins de d'utiliser Add JARs...,  après avoir copié les bibliothèques sous WEB-INF/lib.

Dans le dossier "lib" résultant de la décompression de l'archive MyFaces, on sélectionne soit
myfaces-api-2.1.8.jar et myfaces-impl-2.1.8.jar ou bien myfaces-bundle-2.1.8.jar
, plus le reste des fichiers .jar dans le dossier.


Un clic sur OK


La bibliothèque utilisateur est ajoutée, cochez sa case


Vérifiez les autres options > un clic sur Finish



Ouvrez web.xml dans l'éditeur actif en double cliquant sur web.xml dans le dossier WEB-INF

Ajoutez les lignes suivantes :
 <context-param>
  <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
  <param-value>true</param-value>
 </context-param>

Notez au passage que JBoss Tools a bien configuré le fichier web.xml pour l'utilisation de MyFaces 2.



Testez le projet

La configuration du projet étant terminée, faisons un petit test
J'utilise les mêmes composants JSF2 que nous avons développés, lors de précédents articles.

Sélectionnez le projet qu'on vient de créer > clic droit > Run As > Run on Server


JBoss 7.1 Runtime Server est sélectionné > Next



Vérifiez que le projet avec MyFaces 2 est dans la liste > Finish


JBoss AS Server est lancé avec MyFaces 2 et l'application est exécutée


Read more...

Développez en JSF2 sur JBoss 7 AS avec Eclipse - Partie 4

>> 27 August 2012


Un Projet JSF2 complet, avec l'interface visuelle de JBoss Tools

Dans les précédents articles, nous avons vu, comment installer JBoss AS, et le configurer pour la création d'un projet JSF2, sous Eclipse. Dans cette partie nous allons ajouter des composants pour arriver à un projet complet (très simple),  de JSF2 (Java Server Faces 2), composé de fichiers .xhtml et d'une classe bean.

Note :
Après une installation d'Eclipse JUNO et une mise à jour du JBoss Tools pour cette version d'Eclipse, les exemples semblent marcher sans aucun problème.

Projet JSF2

Un projet JSF2 peut être composé simplement de fichiers .xhtml pour la vue et des classes .java (beans), pour les données et le logique métier (model). L'ensemble de fonctions et navigations est assurés par l'implantation de JSF2. Il est à noter l'existence d’autres parties, comme les Converters, Validators, et autres, formant une framework très complète.

JBoss Tools, l'interface graphique

JBoss Tools dispose de beaucoup de fonctions pour assister le développeur. Nous verrons uniquement les plus basiques dans cet article.

JBoss Tools est doté par exemple d'une palette graphique permettant d'ajouter des composants JSF2 standards (et autres) à une page .xhtml, par un simple clic.
Il est aussi possible d'utiliser JBoss Tools pour une édition assistée des autres parties d'une application JSF2, comme les Managed Beans, Converters, Validators, etc.
La navigation entre pages .xhtml est assurée par une interface graphique aussi.
Etc. Etc.

Continuons le projet

Changeons d'abord de perspective (si ce n'est pas déjà fait) Window > Open Perspective > Web Development.

Note :
Commencez par ajouter une balise form de la palette. On l'oublie vite !

Ajoutez un composant

JBoss Tools est doté d'une palette graphique riche contenant des composants JSF2 standards (et d'autres), groupés par catégories. Il suffit pour ajouter un composant de cliquer sur la palette, entrer les options d'un composant (nom, id,..). Quand vous cliquez sur le bouton Finish, pour terminer, le composant est ajouté dans la page .xhtml ouverte dans l'éditeur quand l'onglet Visual/Source est sélectionné. Les autres onglets permettent de voir le source ou d'avoir un aperçu de la page Web.

Un clic sur la palette catégorie JSF HTML > sélectionnez outputText > dans le champ value > entrez un message, par exemple "Entrez votre nom". Avant de quitter la boîte de dialogue > un clic sur le champ style, ouvre un dialogue pour le style CSS > Quand vous terminez le style > OK

Note :
Un composant outputText, sert simplement à afficher un petit texte.




Un clic sur Finish pour ajouter le composant dans la page.



A tout moment on peut utiliser la barre graphique.



Ajoutez une classe bean.

JBoss Tools est doté d'un assistant permettant d'ajouter, éditer, et modifier les classes Java utilisées comme beans. Il permet aussi, d'ajouter, éditer et modifier leurs propriétés.

Pour ajouter une classe bean, sélectionnez l'onglet Tree > Managed Beans dans l'interface d'édition de JBoss Tool (si l'interface n'est pas visible, double cliquez sur faces-config.xml dans Project Explorer)

Scope (1) est la portée de la class, comme request, session, etc.
Le lien Class(2) permet de lancer un dialogue pour ajouter une nouvelle classe Java Name(3) est le nom donnée au bean (pas le nom de la classe)

Note :
Un clic sur Finish ou Next après avoir entrer le nom de bean et de la classe , la case Generate Source Code étant cochée, permet de générer sans ouvrir la boîte pour personnaliser la classe.




Un dialogue est ouvert pour personnaliser la classe
Un clic sur Finish ajoute la classe dans la partie Managed Beans



La classe est créée et ajoutée à l'interface, sous la rubrique ManagedBean



Un clic sur Add, sous Properties, ouvre une boîte pour entrer une propriété de bean



Note :
Le lien Property Class(2) ouvre un wizard pour créer une classe. Dans le cas présent la propriété, est une simple String, donc on l'entre simplement dans le champ (java.lang.String)
Property Name(1) est le nom de la propriété
 ValueKind(3), est la nature de valeur à utiliser.
 Value(4) est utilisée, si vous voulez donner une valeur par défaut.




Note :
Au lieu de String, entrez the fully qualified class name (le nom de classe avec le chemin) : java.lang.String. Sinon au moment de l'exécution vous aurez une erreur



Ajoutez un composant pour la saisie

Un clic sur inputText dans la palette sous JSF HTML dans la boîte qui s'ouvre. Un clic sur les trois point du champ value ouvre une autre boîte > sélectionnez nom (le nom d'une propriété dans la class bean) > un clic sur OK. Cette opération va à la fois ajouter le composant et l'attacher à la propriété de ManagedBean. Vous éviterez ainsi de sélectionner une propriété qui n'existe pas dans la classe.

 Sélectionnez le nom d'une propriété de la classe bean

Le nom de la propriété est associé au champ. Un clic sur Finish
  A tout moment les propriétés d'un composant sont affichées dans Properties. Plus besoin de mémoriser les propriétés d'un composant.

Ajoutons une méthode à la classe Personne

Cette méthode (expression method) va être appelée par une action dans une page .xhtml (un bouton par exemple). La valeur retournée par cette méthode va orienter la navigation, vers une vue, ou page .xhtml précise.

Personne.java
package com.java_javafx.ka;

public class Personne {

    private String nom;
   

    public Personne() {
       
    }

    public String getNom() {
        return nom;
    }

    public void setNom(String nom) {
        this.nom = nom;
    }

    public String result() {
        if(nom==null ||nom.equals(""))
        return "false";
        return "true";
    }

}

Un bouton (h:commandButton) pour lancer l'action 

A partir de la palette de composants, un clic sur commandButton. Dans le champ action, un clic sur le trois points, sélectionnez la méthode qu'on vient d'ajouter > OK. Changer le champ value (titre du bouton) > entrez par exemple Validez > Finish


Encore deux fichiers pour les navigations

De la même manière qu’index.xhtml, on ajoute deux autres fichiers succes.xhtml et echec.xhtml. Si le nom entré dans le champ texte d'index.xhtml est valide on dirige l'utilisateur via un système de navigation vers succes.html, sinon vers echec.xhtml. Les vérifications sont faites dans la méthode result(), ajoutée précédemment.

Note :
La validation au niveau de la méthode d'action est vraiment rudimentaire. JBoss Tools dispose d'outils très puissants pour développer des validateurs.

succes.xhtml
 

<!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:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">

<h:head></h:head>
<body>
<h:form>
<h:outputText value="#{personne.nom}">
   
</h:outputText>
</h:form>
</body>
</html>

echec.xhtml

<!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:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">

<h:head></h:head>
<body>
<h:form>
<h:outputText value="Le nom entré n'est pas valide">
   
</h:outputText>
</h:form>

</body>
</html>

 Création de règles de navigation

Au lieu d'entrer des règles de navigation à la main, JBoss Tools a une interface graphique permettant d'effectuer cette tâche d'une manière visuelle et intuitive.

Double cliquez sur faces-config.xml (si l'interface n'est pas visible) > sélectionnez l'onglet Diagram. Normalement le fichier index.xhtml est affiché (une icône sur la surface de navigation), sinon un clic sur l’icône View Template  (ou un clic droit sur l'espace graphique > New View)
Entrez le nom d'un fichier avec l'extension .xhtml dans From View Id, laissez les autres options par défaut. Nous faisons de même pour les deux autres fichiers (succes.xhtml et echec.xhtml). Si un fichier existe déjà sur le surface graphique, comme index.xhtml, dans l'exemple, un message d'erreur est affiché.


Les 3 fichiers sont là, ajoutons des règles de navigation
Un clic d'abord sur l'icône Create New Connection. Un clic par la suite sur l'icône index.xhtml > on tire la ligne de connexion, quand on arrive sur succes.xhml, on clique, pour terminer le lien.

Note :
Comme tout dans l'informatique, il est toujours possible de faire une seule et unique chose par différentes méthodes. Ici par exemple, il est aussi possible de créer les fichiers d'abord sur le Diagram. Il y a une case Crate File on Disk. De cette manière vous pouvez créer des fichiers .xhtml sans passer par File > New etc.



Fixez les conditions de navigation :

La condition utilisée, et affichée pour chaque lien sur le Diagram, indique le sens de navigation entre deux fichiers (ou vues). Pour modifier cette condition > double cliquez sur la chaîne de caractères sur une ligne (ou lien de navigation).
Une simple condition est testée dans la méthode "result", permettant de retourner "true" ou "false" et orienter la direction vers echec.xhtml ou succes.xhtml selon la valeur retournée.


Lancez le projet

Clic droit sur le projet > Run As > Run on Server > JBoss 7.1 Runtime Server > Finish

Dans un navigateur (Firefox) Tapez l'url suivant :
http://localhost:8080/test_jsf/index.jsf

La page index.xhtml est affichée

Si on laisse vide le champs de texte et on clique ensuite sur le bouton "Validez", un message d'erreur est affiché (echec.xhmtl), car le nom est invalid. Par contre enter n'importe quel texte, nous envoie vers succes.xhtml, pour l'afficher.

Note :
test_jsf est le nom que j'ai donné à mon projet, veuillez modifier selon votre propre projet JSF2


Quand on entre rien dans le champ texte et on clique sur Validez, on reçoit un message d'erreur.


 Par contre un nom valide l'affiche dans succes.xhtml




Read more...

  © Blogger template Simple n' Sweet by Ourblogtemplates.com 2009

Back to TOP