faqjsf

51
 FAQ JSF Date de publication : 21/01/2008 Dernière mise à jour : 22/12/2009 Cette faq a été réalisée à partir des questions fréquemment posées sur les forums de www.developpez.com et de l'expérience personnelle des auteurs. Nous tenons à souligner que cette faq ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette faq ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider, lisez ceci. Sur ce, nous vous souhaitons une bonne lecture. L'équipe Java

Upload: kidvsdc

Post on 21-Jul-2015

25 views

Category:

Documents


0 download

TRANSCRIPT

FAQ JSFDate de publication : 21/01/2008 Dernire mise jour : 22/12/2009

Cette faq a t ralise partir des questions frquemment poses sur les forums de www.developpez.com et de l'exprience personnelle des auteurs. Nous tenons souligner que cette faq ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette faq ne prtend pas non plus tre complte. Si vous trouvez une erreur, ou que vous souhaitez nous aider, lisez ceci. Sur ce, nous vous souhaitons une bonne lecture. L'quipe Java

Ont contribu cette FAQ :

Rdaction Java (Equipe Java) - fabszn - Sniper37 - JauB - Ricky81 - djo.mos - romaintaz - davdou -

FAQ JSF

1. 2. 3. 4. 5.

Informations (5) ......................................................................................................................................................................... 4 Gnralits (3) ........................................................................................................................................................................... 6 Configuration de l'application Web (6) .....................................................................................................................................8 Les bases de JSF (9) ............................................................................................................................................................... 11 Utilisations des composants standard (30) ..............................................................................................................................17 5.1. Les composants non-visuels (10) ................................................................................................................................... 18 5.2. Les composants visuels (19) .......................................................................................................................................... 23 5.2.1. Les composants de sortie (4) .................................................................................................................................24 5.2.2. Les composants de mise en page (2) .................................................................................................................... 26 5.2.3. Les composants de saisie (4) .................................................................................................................................27 5.2.4. Les composants d'action (2) .................................................................................................................................. 31 5.2.5. Les composants de slection (6) ........................................................................................................................... 33 5.2.5.1. slection unique (3) ...................................................................................................................................... 34 5.2.5.2. slection multiple (3) .................................................................................................................................... 37 6. Extension (4) ............................................................................................................................................................................40 7. Quelques erreurs frquentes (3) .............................................................................................................................................. 44 8. Trucs et Astuces (10) .............................................................................................................................................................. 46

-3Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Sommaire > Informations Quels sont les droits de reproduction de cette FAQ ?Auteurs : Rdaction Java , Les codes sources prsents sur cette page sont libres de droits, et vous pouvez les utiliser votre convenance. Pour le reste, ce document constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 Developpez LLC : Tous droits rservs Developpez LLC. Aucune reproduction, ne peux en tre faite sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Cette page est dpose la SACD. lien : Quels sont les droits de reproduction de cette FAQ ?

Comment bien utiliser cette FAQ ?Auteurs : Rdaction Java , Le but : Cette faq a t conue pour tre la plus simple possible d'utilisation. Elle tente d'apporter des rponses simples et compltes aux questions auxquelles sont confronts tous les dbutants (et les autres). L'organisation : Les questions sont organises par thme, les thmes pouvant eux-mme contenir des sous-thmes. Lorsqu'une question porte sur plusieurs thmes, celle-ci est insre dans chacun des thmes rendant la recherche plus facile. Les rponses : Les rponses contiennent des explications et des codes sources. Certaines sont compltes de fichier tlcharger contenant un programme de dmonstration. Ces programmes sont volontairement trs simples afin qu'il soit ais de localiser le code intressant. Les rponses peuvent galement tre compltes de liens vers d'autres rponses, vers la documentation en ligne de Sun ou vers un autre site en rapport. Nouveauts et mises jour : Lors de l'ajout ou de la modification d'une question/rponse, un indicateur est plac cot du titre de la question. Cet indicateur reste visible pour une dure de 15 jours afin de vous permettre de voir rapidement les modifications apportes. J'espre que cette faq pourra rpondre vos questions. N'hsitez pas nous faire part de tous commentaires/remarques/ critiques. lien : Comment participer cette FAQ ?

O trouver d'autres sources d'information ?Auteurs : Rdaction Java , Les cours et didacticiels de www.developpez.com Les forums de la section Java de www.developpez.com

-4Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Les FAQs Java de www.developpez.com

Comment participer cette FAQ ?Auteurs : Rdaction Java , Cette faq est ouverte toute collaboration. Pour viter la multiplication des versions, il serait prfrable que toutes collaborations soient transmises aux administrateurs de la faq. Plusieurs comptences sont actuellement recherches pour amliorer cette faq : Rdacteur : Bien videmment, toute nouvelle question/rponse est la bienvenue. Web designer : Toute personne capable de faire une meilleur mise en page, une feuille de style ou de belles images... Correcteur : Malgr nos efforts des fautes d'orthographe ou de grammaire peuvent subsister. Merci de contacter les administrateurs si vous en dbusquez une... Idem pour les liens errons. lien : Quels sont les droits de reproduction de cette FAQ ?

RemerciementsAuteurs : Rdaction Java , Un grand merci tous ceux qui ont pris de leur temps pour la ralisation de cette FAQ. Aux rdacteurs : Remerciements tout d'abord tous ceux qui ont rdig les questions et les rponses. Aux correcteurs : Remerciements galement aux personnes qui ont relu les textes pour supprimer un maximum de fautes de franais. Aux visiteurs : Remerciements enfin tous ceux qui ont consult cette FAQ, et qui, par leurs remarques, nous ont aid la perfectionner. Et pour finir, un merci tout spcial tous les membres de l'quipe qui nous ont fourni outils et logiciels ncessaires pour la ralisation de ce document.

-5Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Sommaire > Gnralits Qu'est ce que JSF ?Auteurs : djo.mos , Java ServerFaces (JSF) est un framework de dveloppement d'applications Web bas sur les composants, qui permet de dvelopper des interfaces client riches tout en respectant le paradigme MVC. Il bnficie des apports de Struts dont le crateur Craig McLahanan en est galement le principal concepteur et dveloppeur (avec Ed Burns) ainsi que d'autres technologies Java comme Swing avec son modle vnementiel, les servlets et les JSP. JSF fait partie du standard Java EE, et est donc le fruit du JCP (Java Community Process). JSF est actuellement en version 1.2 ( JSR 252). JSR 127.

Les spcifications de la version 1.0 et 1.1 taient dfinies dans la La version 2.0 est en cours de prparation via la lien : Quelles sont les implmentations JSF ? JSR 314.

Quelles sont les implmentations JSF ?Auteurs : djo.mos , JSF tant un ensemble de spcifications (comme toutes les technologies Java EE), il dispose de nombreuses implmentations. Chaque serveur d'application Java EE offre d'office une implmentation JSF mais il existe aussi des implmentations indpendantes utilisables dans les conteneurs Web (Tomcat, Jetty, etc.) comme par exemple: Sun JSF 1.2 RI: C'est l'implmentation de rfrence de JSF maintenue par Sun. Elle est donc la plus jour et est aussi utilise dans Glassfish. Elle est open source et gratuite. Apache MyFaces: Une implmentation open source et gratuite issue de la fondation Apache. La version 1.2 implmente JSF 1.2.

lien : Quelles sont les jeux de composants JSF gratuits disponibles ?

Quelles sont les jeux de composants JSF gratuits disponibles ?Auteurs : djo.mos , Si vous trouvez que les jeux de composants standards d'une implmentation JSF ne sont pas suffisants, vous pouvez utiliser ces jeux de composants gratuits et plus riches: JBoss Richfaces (ex Exadel Richfaces): C'est un jeu de composants open source et gratuit. Il permet d'ajaxifier simplement son appplication JSF et offre de nombreux composants complexes (Tree, images dynamiques, drag'n'drop, etc.) Apache Trinidad (Originellement Oracle ADF Faces): un ensemble extrmement riche de composants. Apache Tomahawk: un ensemble de composants additionnels pour Apache MyFaces mais peut tre utilis sparment. ICEfaces

-6Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Woodstock

-7Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Sommaire > Configuration de l'application Web Comment configurer la Faces servlet dans le fichier web.xml ?Auteurs : djo.mos , Il faut ajouter l'lment suivant dans le fichier web.xml: Faces Servlet javax.faces.webapp.FacesServlet 1

Et ce indpendamment de l'implmentation choisie. Avec: dfinit l'alias dont vous devez vous servir dans le reste du descripteur de dploiement web.xml. dfinit le nom entirement qualifi de la servlet Faces Servlet. (entier positif) sert attribuer une priorit de chargement de la servlet par le conteneur, 1 tant la priorit la plus leve.

Pour dfinir quelles sont les requtes que la servlet FacesServletdoit intercepter, il faut configurer le mapping de celle-ci: Faces Servlet *.jsf

Vous pouvez aussi utiliser d'autres mapping comme *.faces ou /faces/* La Faces Servlet ncessite un fichier de configuration nomm gnralement faces-config.xml. lien : Quelle est la structure du fichier faces-config.xml ? lien : Quelles sont les implmentations JSF ?

Quelle est la structure du fichier faces-config.xml ?Auteurs : djo.mos , Pour JSF 1.0:

Pour JSF 1.1:

-8Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Pour JSF 1.2:

Comment changer le nom ou l'emplacement du fichier faces-config.xml ?Auteurs : djo.mos , Le nom et l'emplacement du fichier de configuration de JSF faces-config.xml sont spcifis par un paramtre de contexte dans web.xml. Le chemin vers ce fichier est un chemin relatif partir de la racine de l'application. L'exemple suivant est identique une dclaration sans section (valeur par dfaut) : javax.faces.CONFIG_FILES /WEB-INF/faces-config.xml

lien : Comment avoir plusieurs fichiers de config dans la meme application ?

Comment avoir plusieurs fichiers de config dans la meme application ?Auteurs : Sniper37 , Il faut ajouter dans le web.xml : javax.faces.CONFIG_FILES /WEB-INF/navigation.xml,/WEB-INF/myfaces-config.xml

Comment utiliser une page JSF en tant que page d'accueil ?Auteurs : djo.mos , Premire mthode : via redirection: Pour utiliser une page JSF comme page d'accueil, il faut passer par une page jsp intermdiaire qu'on dclare dans la liste des welcome-file-list et qui redirige vers la pages JSF: Par exemple, si on veut que la page pageDmarrage.jsp qui est une page JSF (contenant des composants JSF) soit la page d'accueil, il faut: Dans web.xml : -9Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

index.jsp

Dans index.jsp :

Si vous utilisez *.jsf comme pattern de la Faces Servlet. lien : Comment configurer la Faces servlet dans le fichier web.xml ? lien : Comment utiliser une page JSF en tant que page d'accueil (deuxime mthode) ?

Comment utiliser une page JSF en tant que page d'accueil (deuxime mthode) ?Auteurs : davdou , Il faut crer un fichier (qui peut tre vide) en plus de la page d'accueil JSF et qui porte le mme nom mais avec l'extension attach la FacesServlet. Par exemple, pour utiliser accueil.faces comme page d'accueil, il faut: Dans web.xml : accueil.faces

Crer comme d'habitude la page JSF (accueil.jsp, accueil.xhtml, accueil.jspx). Mais aussi crer un fichier "accueil.faces" (mme vide) dans la racine du dossier web. lien : Comment configurer la Faces servlet dans le fichier web.xml ? lien : Comment utiliser une page JSF en tant que page d'accueil ?

- 10 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Sommaire > Les bases de JSF Comment dclarer un managed bean ?Auteurs : djo.mos , Dans faces-config.xml, on ajoute l'lment suivant: UnManagedBean unManagedBean session Ceci est un exemple de managed bean

Avec: pour dfinir le type du managed bean pour dfinir le nom sous lequel le bean sera expos aux pages JSF pour dfinir o sera stock le managed-bean (request, session, application)

lien : Comment initialiser les proprits d'un managed bean depuis le fichier de configuration ?

Comment initialiser les proprits d'un managed bean depuis le fichier de configuration ?Auteurs : djo.mos , En ajoutant un lment dans la dclaration du managed-bean dans faces-config.xml: chane java.lang.String Une valeur quelquonque

Avec: est le nom de la proprit (le nom de dclaration) est le type de la proprit la valeur affecter la proprit

Pour les types complexes (collections), voici comment on procde: Pour une liste (List)/ensemble (Set): liste java.util.List java.lang.String Valeur 1 Valeur 2 Valeur 3

Pour une Map:

- 11 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

map java.util.Map java.lang.Long java.lang.String 1 Valeur 1 2 Valeur 2

lien : Comment dclarer un managed bean ?

C'est quoi l'Expression Language de JSF ?Auteurs : djo.mos , L'Expression Language (EL) de JSF est un mini-langage similaire l'EL de JSP 2.0 ou de JSTL qui permet de rcuprer ou de modifier un attribut. Dans JSF, un EL est mise dans #{} et peut tre utilis dans la majorit des attributs des composants. Ils sont en gnral utiliss pour lier un attribut d'un composant un champ d'un managed bean, et ce dans les deux sens ( l'inverse de l'EL de JSP 2.0). Voici une liste non exhaustive des cas d'utilisation des EL:

- 12 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

EL #{unBean.unChamp}

Signification Retourne la valeur du champ unChamp du managed bean unBean #{unBean['unChamp']} quivalente l'ecriture prcdente #{unBean.unChamp.unAutreChamp.encoreUnChamp} Les EL n'imposent pas une limite quant la profondeur #{uneListe[5]} Retourne le cinquime lment de la liste uneListe #{unMap['uneCl']} accde la valeur enregistre dans le map unMap sous la cl uneCl. #{unMap.uneCl} quivalente l'criture prcdente #{uneListe[unBean.unIndice]} accde l'lment d'indice gal la valeur du champ unIndice du bean unBean. #{unMap[unBean.uneCl]} accde la valeur enregistre dans le map unMap sous la cl de valeur gale la valeur du champ uneCl du bean unBean. #{unMap[unBean.uneCl][2]} accde au second lment de la liste enregistre dans le map unMap sous la cl unBean.uneCl #{uneValeur>25} retourne true si une valeur est < 25. Les oprateurs suivants sont aussi supports: =, ==, !=. #{uneValeur>25 and uneAutreValeur Utilisations des composants standard > Les composants visuels > Les composants de saisie Comment permettre la saisie d'un texte depuis une page JSF ?Auteurs : djo.mos , En utilisant le composant standard inputText du jeu de composants HTML. Ce composant doit obligatoirement tre dans un composant form pour fonctionner correctement. Les principaux attributs de ce composant sont: Attribut value EL ou autre Type Signification Le texte afficher. Dans le cas gnral, on utilise une EL pointant vers un champ d'un managed bean. A l'affichage du composant, sa valeur sera celle du champ, et aprs soumission, la valeur du composant sera affecte au champ du bean. Si oui ou non ce composant est inclus dans la page rsultante. L'identifiant du composant Le style CSS appliquer au texte affich. La classe CSS appliquer au texte affich.

rendered

EL ou boolen

id style styleClass

chane EL ou chane EL ou autre

Exemples:

lien : Comment permettre la saisie d'un mot de passe depuis une page JSF ? lien : Comment permettre la saisie d'un texte multi ligne depuis une page JSF ? lien : Comment crer un formulaire dans une page JSF ?

Comment permettre la saisie d'un texte multi ligne depuis une page JSF ?Auteurs : djo.mos , En utilisant le composant standard inputTextArea du jeu de composants HTML. Ce composant doit obligatoirement tre dans un composant form pour fonctionner correctement. Les principaux attributs de ce composant sont:

- 27 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Attribut value EL ou autre

Type

rendered

EL ou boolen

id style styleClass

chane EL ou chane EL ou autre

Signification Le texte afficher. Dans le cas gnral, on utilise une EL pointant vers un champ d'un managed bean. A l'affichage du composant, sa valeur sera celle du champ, et aprs soumission, la valeur du composant sera affecte au champ du bean. Si oui ou non ce composant est inclus dans la page rsultante. L'identifiant du composant Le style CSS appliquer au texte affich. La classe CSS appliquer au texte affich.

Exemples:

lien : Comment permettre la saisie d'un texte depuis une page JSF ? lien : Comment permettre la saisie d'un mot de passe depuis une page JSF ? lien : Comment crer un formulaire dans une page JSF ?

Comment permettre la saisie d'un mot de passe depuis une page JSF ?Auteurs : djo.mos , En utilisant le composant standard inputSecret du jeu de composants HTML. Ce composant doit obligatoirement tre dans un composant form pour fonctionner correctement. Les principaux attributs de ce composant sont: attribut value EL ou autre type Signification Le texte afficher. Dans le cas gnral, on utilise une EL pointant vers un champ d'un managed bean. A l'affichage du composant, sa valeur sera celle du champ, et aprs soumission, la valeur du

- 28 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

rendered

EL ou boolen

id style styleClass

chane EL ou chane EL ou autre

composant sera affecte au champ du bean. Si oui ou non ce composant est inclus dans la page rsultante. L'identifiant du composant Le style CSS appliquer au texte affich. La classe CSS appliquer au texte affich.

Exemples:

lien : Comment permettre la saisie d'un texte depuis une page JSF ? lien : Comment permettre la saisie d'un texte multi ligne depuis une page JSF ? lien : Comment crer un formulaire dans une page JSF ?

Comment utiliser une case cocher dans une page JSF ?Auteurs : djo.mos , En utilisant le composants standard selectBooleanCheckbox du jeu de composants HTML.

selectBooleanCheckbox Ce composant doit obligatoirement tre dans un composant form pour qu'il fonctionne correctement. Les principaux attributs de ce composant sont: attribut value type EL ou boolen Signification Si oui ou non la case est coche. Dans le cas gnral, on utilise une EL pointant vers un champ de type boolen d'un managed bean. A l'affichage du composant, sa valeur sera celle du champ, et aprs soumission,

- 29 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

rendered

EL ou boolen

id style styleClass

chane EL ou chane EL ou autre

la valeur du composant sera affecte au champ du bean. Si oui ou non ce composant est inclus dans la page rsultante. L'identifiant du composant Le style CSS appliquer au texte affich. La classe CSS appliquer au texte affich.

Exemples:

lien : Comment utiliser les boutons Radio dans une page JSF ? lien : Comment utiliser les listes droulantes dans une page JSF ? lien : Comment utiliser les listes choix unique dans une page JSF ? lien : Comment utiliser une liste choix multiples avec une seul visible dans une page JSF ? lien : Comment utiliser plusieurs case cocher dans une page JSF ? lien : Comment utiliser une liste choix multiples dans une page JSF ? lien : Comment crer un formulaire dans une page JSF ?

- 30 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Sommaire > Utilisations des composants standard > Les composants visuels > Les composants d'action Comment crer un bouton de commande dans une page JSF ?Auteurs : djo.mos , Un bouton de commande est un bouton qui effectue la soumission de son formulaire et invoque un traitement java ct serveur. Pour le crer, on utilise le composant standard commandButton du jeu de composants HTML. Ce composant doit obligatoirement tre dans un composant form pour fonctionner correctement. Les principaux attributs de ce composant sont: attribut value action type EL ou chane EL ou chane Signification Texte du bouton Soit l'EL d'une action d'un managed bean qui sera excute suite un clic sur ce bouton, soit l'outcome utiliser pour choisir la page suivante afficher selon les rgles de navigation.

Exemples:

lien : Comment invoquer un traitement Java depuis une page JSF ? lien : Comment crer un lien de commande dans une page JSF ? lien : Comment crer un formulaire dans une page JSF ?

Comment crer un lien de commande dans une page JSF ?Auteurs : djo.mos , Un lien de commande est un lien hypertexte qui effectue la soumission de son formulaire et invoque un traitement java ct serveur. Pour le crer, on utilise le composant standard commandLink du jeu de composants HTML. Ce composant doit obligatoirement tre dans un composant form pour fonctionner correctement. Les principaux attributs de ce composant sont: attribut value action type EL ou chane EL ou chane Signification Texte du lien Soit l'EL d'une action d'un managed bean qui sera excute suite un clic sur ce

- 31 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

lien, soit l'outcome utiliser pour choisir la page suivante afficher selon les rgles de navigation. Exemples:

lien : Comment invoquer un traitement Java depuis une page JSF ? lien : Comment crer un bouton de commande dans une page JSF ? lien : Comment crer un formulaire dans une page JSF ?

- 32 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Sommaire > Utilisations des composants standard > Les composants visuels > Les composants de slection

- 33 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Sommaire > Utilisations des composants standard > Les composants visuels > Les composants de slection > slection unique Comment utiliser les boutons Radio dans une page JSF ?Auteurs : djo.mos , En utilisant le composants standard selectOneRadio du jeu de composants HTML.

selectOneRadio Pour spcifier les diverses options, il faut ajouter des selectItem et selectItems comme composants fils. Ce composant doit obligatoirement tre dans un composant form pour qu'il fonctionne correctement. Les principaux attributs de ce composant sont: attribut value EL type Signification EL vers un champ d'un managed bean o sera stock le choix de l'utilisateur aprs soumission. lineDirection pour afficher les cases cocher dans une seule ligne, pageDirection pour les afficher verticalement.

layout

lineDirection ou pageDirection

Exemples:

lien : Comment utiliser une case cocher dans une page JSF ? lien : Comment utiliser les listes droulantes dans une page JSF ? lien : Comment utiliser les listes choix unique dans une page JSF ? lien : Comment utiliser une liste choix multiples avec une seul visible dans une page JSF ? lien : Comment utiliser plusieurs case cocher dans une page JSF ? lien : Comment utiliser une liste choix multiples dans une page JSF ? lien : Comment crer un formulaire dans une page JSF ?

Comment utiliser les listes droulantes dans une page JSF ?Auteurs : djo.mos , En utilisant le composants standard selectOneMenu du jeu de composants HTML.

- 34 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

selectOneMenu Pour spcifier les diverses options, il faut ajouter des selectItem et selectItems comme composants fils. Ce composant doit obligatoirement tre dans un composant form pour qu'il fonctionne correctement. Les principaux attributs de ce composant sont: attribut value type EL ou chane Signification Gnralement, on utilise une EL qui pointe vers un champ d'un managedBean o stocker le choix de l'utilisateur aprs soumission

Exemples:

lien : Comment utiliser les boutons Radio dans une page JSF ? lien : Comment utiliser une case cocher dans une page JSF ? lien : Comment utiliser les listes choix unique dans une page JSF ? lien : Comment utiliser une liste choix multiples avec une seul visible dans une page JSF ? lien : Comment utiliser plusieurs case cocher dans une page JSF ? lien : Comment utiliser une liste choix multiples dans une page JSF ? lien : Comment crer un formulaire dans une page JSF ?

Comment utiliser les listes choix unique dans une page JSF ?Auteurs : djo.mos , En utilisant le composants standard selectOneListbox du jeu de composants HTML.

- 35 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

selectOneListbox Pour spcifier les diverses options, il faut ajouter des selectItem et selectItems comme composants fils. Ce composant doit obligatoirement tre dans un composant form pour qu'il fonctionne correctement. Les principaux attributs de ce composant sont: attribut value type EL ou chane Signification Gnralement, on utilise une EL qui pointe vers un champ d'un managedBean o stocker le choix de l'utilisateur aprs soumission

Exemples:

lien : Comment utiliser les boutons Radio dans une page JSF ? lien : Comment utiliser les listes droulantes dans une page JSF ? lien : Comment utiliser une case cocher dans une page JSF ? lien : Comment utiliser une liste choix multiples avec une seul visible dans une page JSF ? lien : Comment utiliser plusieurs case cocher dans une page JSF ? lien : Comment utiliser une liste choix multiples dans une page JSF ? lien : Comment crer un formulaire dans une page JSF ?

- 36 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Sommaire > Utilisations des composants standard > Les composants visuels > Les composants de slection > slection multiple Comment utiliser plusieurs case cocher dans une page JSF ?Auteurs : djo.mos , En utilisant le composants standard selectManyCheckbox du jeu de composants HTML.

selectManyCheckbox Pour spcifier les diverses options, il faut ajouter des selectItem et selectItems comme composants fils. Ce composant doit obligatoirement tre dans un composant form pour qu'il fonctionne correctement. Les principaux attributs de ce composant sont: attribut value EL type Signification une EL pointant vers une liste ou tableau d'objets o seront stocks les choix de l'utilisateur aprs soumission. lineDirection pour afficher les cases cocher dans une seule ligne, pageDirection pour les afficher verticalement.

layout

lineDirection ou pageDirection

Exemples:

lien : Comment utiliser les boutons Radio dans une page JSF ? lien : Comment utiliser les listes droulantes dans une page JSF ? lien : Comment utiliser une case cocher dans une page JSF ? lien : Comment utiliser les listes choix unique dans une page JSF ? lien : Comment utiliser une liste choix multiples avec une seul visible dans une page JSF ? lien : Comment utiliser une liste choix multiples dans une page JSF ? lien : Comment crer un formulaire dans une page JSF ?

Comment utiliser une liste choix multiples dans une page JSF ?Auteurs : djo.mos , En utilisant le composants standard selectManyListbox du jeu de composants HTML.

- 37 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

selectManyListbox Pour spcifier les diverses options, il faut ajouter des selectItem et selectItems comme composants fils. Ce composant doit obligatoirement tre dans un composant form pour qu'il fonctionne correctement. Les principaux attributs de ce composant sont: attribut value EL type Signification une EL pointant vers une liste ou tableau d'objets o seront stocks les choix de l'utilisateur aprs soumission.

Exemples:

lien : Comment utiliser les boutons Radio dans une page JSF ? lien : Comment utiliser les listes droulantes dans une page JSF ? lien : Comment utiliser une case cocher dans une page JSF ? lien : Comment utiliser les listes choix unique dans une page JSF ? lien : Comment utiliser une liste choix multiples avec une seul visible dans une page JSF ? lien : Comment utiliser plusieurs case cocher dans une page JSF ? lien : Comment crer un formulaire dans une page JSF ?

Comment utiliser une liste choix multiples avec une seul visible dans une page JSF ?Auteurs : djo.mos , En utilisant le composants standard selectManyMenu du jeu de composants HTML.

selectManyMenu Pour spcifier les diverses options, il faut ajouter des selectItem et selectItems comme composants fils.

- 38 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Ce composant doit obligatoirement tre dans un composant form pour qu'il fonctionne correctement. Les principaux attributs de ce composant sont: attribut value EL type Signification une EL pointant vers une liste ou tableau d'objets o seront stocks les choix de l'utilisateur aprs soumission.

Exemples:

lien : Comment utiliser les boutons Radio dans une page JSF ? lien : Comment utiliser les listes droulantes dans une page JSF ? lien : Comment utiliser une case cocher dans une page JSF ? lien : Comment utiliser les listes choix unique dans une page JSF ? lien : Comment utiliser plusieurs case cocher dans une page JSF ? lien : Comment utiliser une liste choix multiples dans une page JSF ? lien : Comment crer un formulaire dans une page JSF ?

- 39 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Sommaire > Extension Comment crer un validator personnalis ?Auteurs : djo.mos , La cration d'un validator personnalis passe par les tapes suivantes: Crer une classe qui implmente l'interface javax.faces.validator.Validator . Dclarer cette classe dans faces-config.xml en lui associant un identifiant.

Par exemple, on souhaite saisir le nom, le prnom et l'age d'une personne dans un seul champ texte avec le format "prnom nom age", et on va crer un validator qui valide une saisie:public class PersonValidator implements Validator { private Pattern p = Pattern.compile("[a-zA-Z]+\\s+[a-zA-Z]+\\s+[0-9]+"); public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException { Matcher m = p.matcher((String) value); if (!m.matches()) throw new ValidatorException(new FacesMessage( FacesMessage.SEVERITY_ERROR, "Entre non valide", "Entre non valide")); } }

Il faut ensuite dclarer ce validator dans faces-config.xml: personValidator validators.PersonValidator

Et enfin, pour utiliser le validator dans les pages JSF, on procde comme suit:

chaque fois qu'on remplit un champ texte et qu'on valide, JSF va invoquer la mthode validate de notre Validator en lui passant les paramtres suivants: context: permet d'accder l'environnement JSF. component: le composant parent de notre validator. value: la valeur saisie par l'utilisateur.

Si l'entre n'est pas valide, il faut lancer une exception du type ValidatorException qui prend un message comme paramtre. Un message est compos de: gravit: l'une des valeurs suivantes: SEVERITY_FATAL, SEVERITY_ERROR, SEVERITY_WARN et SEVERITY_INFO. sommaire: version courte du message d'erreur.

- 40 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

detail: version dtaille du message d'erreur.

lien : Comment utiliser les validators standards ? lien : Comment crer un validator personnalis ? (Deuxime mthode)

Comment crer un validator personnalis ? (Deuxime mthode)Auteurs : djo.mos , JSF offre une mthode plus simple pour crer des validators personnaliss et ce en acceptant une mthode de validation dans un managed bean. Par exemple, si on veut refaire le validator prsent dans la question prcdente, il suffit de dclarer la mthode validate (avec la mme signature) dans son managed bean au lieu d'une classe spare:public void validatePerson(FacesContext context, UIComponent component, Object value) throws ValidatorException { Pattern p = Pattern.compile("[a-zA-Z]+\\s+[a-zA-Z]+\\s+[0-9]+"); Matcher m = p.matcher((String) value); if (!m.matches()) throw new ValidatorException(new FacesMessage( FacesMessage.SEVERITY_ERROR, "Entre non valide", "Entre non valide")); }

Plus besoin alors de dclarer le validator dans faces-config.xml. Pour utiliser ce validator dans les pages JSF, on passe le nom de la mthode de validation comme valeur de l'attribut validator du composant valider:

lien : Comment utiliser les validators standards ? lien : Comment crer un validator personnalis ?

Comment crer un converter personnalis ?Auteurs : Sniper37 , djo.mos , La cration d'un converter personnalis passe par les tapes suivantes: Crer une classe qui implmente l'interface javax.faces.convert.Converter . Dclarer cette classe dans faces-config.xml en lui associant un identifiant.

Par exemple, on souhaite afficher une classe Person contenant 3 champs (firstName, lastName et age) via un seul appel au composant , avec le format "prnom nom age", on cre un converter:public class PersonConverter implements Converter { public Object getAsObject(FacesContext context, UIComponent component, String value) { return null; } public String getAsString(FacesContext context, UIComponent component, Object value) { Person person = (Person) value;

- 41 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

return person.getFirstName() + " " + person.getLastName() + " " + person.getAge(); } }

Notez que dans ce cas prcis de figure, on s'est content d'implmenter la mthode getAsString vu qu'on souhaite seulement afficher une personne. Si on souhaite transformer la valeur d'un champ texte en une instance de Person, il faut alors implmenter la mthode getAsObject qui effectue le traitement inverse. Il faut ensuite dclarer ce converter dans faces-config.xml en lui associant un identifiant: personConverter converters.PersonConverter

Et enfin, pour utiliser le validator dans les pages JSF, on procde comme suit:

Alternativement, on peut spcifier lors de la dfinition d'un converter dans faces-config.xml quel type ce converter s'applique. Dans ce cas, plus besoin d'indiquer explicitement le converter utiliser dans un composant: JSF invoquera automatiquement le conveter adapt: Dan faces-config.xml: model.Person converters.PersonConverter

Et dans la page:

chaque fois qu'on essaie d'afficher une instance de Person, JSF va invoquer la mthode getAsString de notre Validator en lui passant les paramtres suivants: context: permet d'accder l'environnement JSF. component: le composant parent de notre validator. value: l'instance de Person afficher.

lien : Comment utiliser les converters standards ? lien : Comment crer un converter personnalis ? (Deuxime mthode)

Comment crer un converter personnalis ? (Deuxime mthode)Auteurs : djo.mos , Il est possible de spcifier le converter utiliser dans un composant en utilisant l'attribut converter qui doit pointer vers une instance implmentant javax.faces.convert.Converter .

- 42 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

L'avantage avec cette mthode est que le converter utilis peut tre modifi dynamiquement.

lien : Comment utiliser les converters standards ? lien : Comment crer un converter personnalis ?

- 43 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Sommaire > Quelques erreurs frquentes Pourquoi mes dates, rcupres depuis ma base de donnes, sont-elles affiches avec un jour de moins sur ma page JSF ?Auteurs : romaintaz , Explication: Lorsque l'on stocke une date dans la base de donnes (supposons le 07/02/2008), il est effectivement possible que l'heure stocke soit par dfaut 00h00 si celle-ci n'est pas prcise. Lors de l'affichage, le calendrier fait la "conversion" avec les fuseaux horaires pour correspondre l'affichage du client. Selon la configuration de ce dernier, il est possible que la conversion entrane une soustraction d'heures, et donc fait passer la date la veille. Solution: Il suffit de forcer l'utilisation d'une Timezone grce au composant :

Ou mieux encore, en passant par un fichier .properties pour avoir un affichage localis:

lien : Comment utiliser les converters standards ?

Que veut dire le message: Faces context not found ?Auteurs : djo.mos , Lorsque vous recevez ce message, c'est que vous essayez d'accder une page JSF (contenant des composants JSF) en utilisant le nom rel du fichier et non pas en appliquant le pattern associ la FacesServlet. Par exemple, si vous avez configur le pattern de la FacesServlet comme ceci (dans web.xml): Faces Servlet *.jsf

Et que vous essayez d'accder une page JSF situe dans un fichier nomm page.jsp par l'url page.jsp, alors une exception FacesContext not found sera leve. Il faut plutt accder la page en utilisant le suffixe jsf, c'est dire avec page.jsf. lien : Comment configurer la Faces servlet dans le fichier web.xml ?

Que veut dire le message: Value is not valid ?Auteurs : fabszn , Que veut dire le message :

- 44 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

com.sun.faces.context.FacesContextImpl addMessage Adding Message[sourceId=xxxxx:xxxxx,summary=Erreur de validation: Valeur not valid.)

Ainsi que les variantes suivantes :

..... summary=Validation Error: Value is not valid

Ce message indique que l'attribut correspondant, au niveau du managedBean, n'a pas le type attendu. Par exemple, si la liste des ids pour un composant selectOneMenu est construite partir BigDecimal et que le champ permettant de rceptionner la valeur slectionne est de type Integer ce type d'erreur remontera (sans plus d'explication). lien : Comment utiliser les validators standards ? lien : Comment afficher les messages d'erreurs gnrs par les validators ?

- 45 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Sommaire > Trucs et Astuces Comment invalider la session/implmenter la fonctionnalit "Logout" ?Auteurs : Sniper37 , Il suffit d'invoquer ce traitement depuis une action dans un managed bean :((HttpSession) FacesContext.getCurrentInstance().getExternalContext() .getSession(true)).invalidate();

Cette action peut tre invoque depuis un commandButton ou un commandLink. lien : Comment invoquer un traitement Java depuis une page JSF ?

Comment modifier les messages d'erreurs par dfaut des validators JSF ?Auteurs : fabszn , Consultez le fichier message.properties contenu dans l'archive jar de l'implmentation JSF utilise. Rcuprez les clefs des messages que vous voulez modifier et reportez les dans votre propre fichier de bundle. Ensuite dclarez ce fichier de bundle dans le fichier de configuration faces-config.xml : mon.package.vers.mon.fichier.bundle

Le fichier mon.package.vers.mon.fichier.bundle l'extension .properties

ne

doit

pas

tre

suffix

par

lien : Comment afficher les messages d'erreurs gnrs par les validators ?

Comment rcuprer par programmation la valeur d'un managed bean ?Auteurs : Sniper37 , Mthode 1: utilisation de JSF value binding:FacesContext context = FacesContext.getCurrentInstance() .getCurrentInstance(); SessionBean = (SessionBean) context.getApplication() .createValueBinding("#{sessionBean}").getValue(context);

Mthode 2: accder directement la session l'aide de ExternalContext:Bean = (Bean)FacesContext.getCurrentInstance().getCurrentInstance() .getExternalContext().getSessionMap().get("bean");

Mthode 3: Utilisation de JSF Value Expression:FacesContext context = FacesContext.getCurrentInstance(); ManagedBean bean = (ManagedBean) context.getApplication() .getExpressionFactory().createValueExpression( context.getELContext(), "#{managedBean}",

- 46 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

ManagedBean.class).getValue(context.getELContext());

lien : Comment rcuprer un composant d'une page JSF depuis le code Java ?

Comment rcuprer un composant d'une page JSF depuis le code Java ?Auteurs : romaintaz , Avec le code suivant:UIComponent monComponent = (UIComponent) FacesContext .getCurrentInstance().getViewRoot().findComponent( "idDuComposant");

A noter que l'identifiant du composant doit tre son identifiant complet, c'est--dire prfix par les identifiants de tous les composants implmentant l'interface NamingContainer et spars par des ":". Par exemple, dans le code suivant : ...

Alors l'identifiant complet de l'inputText sera "monFormulaire:monInput". lien : Comment rcuprer par programmation la valeur d'un managed bean ?

Comment rcuprer la ligne active d'une dataTable ?Auteurs : djo.mos , Il est parfois pratique d'ajouter sur chaque ligne d'une DataTable un lien cliquable (commandLink) ou un bouton (commandButton) qui permet de raliser une action sur l'lment affich sur cette ligne. Pour pouvoir rcuprer ensuite l'lment actif dans l'action dclenche, il faut attacher l'attribut value du composant dataTable un javax.faces.model.DataModel au lieu de l'attacher directement une liste. Voici la dclaration d'un DataModel dans un managedBean:private DataModel dataModel = new ListDataModel();

DataModel est une interface tout comme List tandis que ListDataModel est une implmentation tout comme ArrayList. Il faut ensuite pointer vers dataModel comme value d'une dataTable: : :

Ensuite, suite un clic sur un commandLink ou un commandButton sur une ligne, et dans l'action appele, il suffit de faire :

- 47 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Object o = dataModel.getRowData();

pour rcuprer l'objet reprsent par la ligne active. Il faut ensuite le caster vers son type d'origine. Pour alimenter un DataModel avec une liste (List), on procde comme suit:

dataModel.setWrappedData(uneListeQuelquonque);

lien : Comment rcuprer la ligne active d'une dataTable ? (2 ime mthode) lien : Comment rcuprer la ligne active d'une dataTable ? (3 ime mthode)

Comment rcuprer la ligne active d'une dataTable ? (2 ime mthode)Auteurs : romaintaz , Il est parfois pratique d'ajouter sur chaque ligne d'une DataTable un lien cliquable (commandLink) ou un bouton (commandButton) qui permet de raliser une action sur l'lment affich sur cette ligne. JSF propose des mthodes pour rcuprer directement l'objet Java se trouvant sur la ligne contenant le lien sur lequel l'utilisateur a ralis le clic : Le composant Datatable (ou tout composant tendant UIData) de JSF propose en effet les mthodes getRowData() et getRowIndex() qui retournent respectivement l'objet et son index correspondants la ligne du tableau sur laquelle l'utilisateur a cliqu sur un lien. On pourra alors crire dans son bean (selectionneElement est l'actionListener du lien cliquable affich sur une ligne du tableau) :public void selectionneElement(ActionEvent evt) { // On rcupre la datatable. HtmlDataTable table = getParentDatatable((UIComponent) evt.getSource()); // On rcupre l'objet affich la bonne ligne de la datatable. Object o = table.getRowData(); // On rcupre aussi son index int index = table.getRowIndex(); // Suite du traitement sur l'objet slectionn. } private HtmlDataTable getParentDatatable(UIComponent compo) { if (compo == null) { return null; } if (compo instanceof HtmlDataTable) { return (HtmlDataTable) compo; } return getParentDataTable(compo.getParent()); }

lien : Comment rcuprer la ligne active d'une dataTable ?

- 48 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

lien : Comment rcuprer la ligne active d'une dataTable ? (3 ime mthode)

Comment rcuprer la ligne active d'une dataTable ? (3 ime mthode)Auteurs : djo.mos , Il est parfois pratique d'ajouter sur chaque ligne d'une DataTable un lien cliquable (commandLink) ou un bouton (commandButton) qui permet de raliser une action sur l'lment affich sur cette ligne. Pour pouvoir rcuprer ensuite l'lment actif dans l'action dclenche, il faut ajouter le composant setPropertyActionListener comme fils du composant qui dclenche l'action. Exemple: On dclare un champ qui servira rcuprer l'objet de la ligne slectionne (du type fictif Car):private Car selectedCar

Il faut ensuite pointer vers dataModel comme value d'une dataTable:

Ensuite, suite un clic sur le commandButton d'une ligne, et dans l'action appele, on est assur que le champ selectedCar contient l'objet de type Car correspondant la ligne contenant le bouton qui a declench le clic. lien : Comment rcuprer la ligne active d'une dataTable ? lien : Comment rcuprer la ligne active d'une dataTable ? (2 ime mthode) lien : Comment utiliser le composant setPropertyActionListener ?

Comment permettre/empcher l'chappement des caractres sensibles avec ?Auteurs : djo.mos , En utilisant l'attribut escape du composant . Ainsi, l'exemple suivant affiche une ligne horizontale:

Tandis que l'exemple suivant affiche le texte

- 49 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

Le deuxime comportement est le comportement par dfaut (escape=true).

lien : Comment afficher du texte dans une page JSF ?

Comment executer une requete sans passer par les phases validation et conversion ?Auteurs : Sniper37 , En mettant l'attribut immediate de l'lment qui dclenche l'action (commandButton, commandLink) true.

lien : A quoi sert l'attribut immdiate ?

Comment journaliser les phases de l'application JSF ?Auteurs : Sniper37 , djo.mos , Il faut crer un PhaseListener qui implmente l'interface javax.faces.event.PhaseListener :public class LogPhaseListener implements javax.faces.event.PhaseListener { private static final long serialVersionUID = -4395863677889457550L; private static final org.apache.log4j.Logger log = org.apache.log4j.Logger .getLogger(LogPhaseListener.class); public void afterPhase(javax.faces.event.PhaseEvent e) { log.debug("afterPhase " + e.getPhaseId()); } public void beforePhase(javax.faces.event.PhaseEvent e) { log.debug("beforePhase " + e.getPhaseId()); } public javax.faces.event.PhaseId getPhaseId() { return javax.faces.event.PhaseId.ANY_PHASE; } }

Il faut ensuite le dclarer dans faces-config.xml: package.LogPhaseListener

Ainsi, l'affichage d'une page JSF, on peut voir ceci:

DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG

(LogPhaseListener.java:17) (LogPhaseListener.java:13) (LogPhaseListener.java:17) (LogPhaseListener.java:13) (LogPhaseListener.java:17) (LogPhaseListener.java:13) (LogPhaseListener.java:17) (LogPhaseListener.java:13) (LogPhaseListener.java:17) (LogPhaseListener.java:13) (LogPhaseListener.java:17) (LogPhaseListener.java:13)

-

beforePhase RESTORE_VIEW 1 afterPhase RESTORE_VIEW 1 beforePhase APPLY_REQUEST_VALUES 2 afterPhase APPLY_REQUEST_VALUES 2 beforePhase PROCESS_VALIDATIONS 3 afterPhase PROCESS_VALIDATIONS 3 beforePhase UPDATE_MODEL_VALUES 4 afterPhase UPDATE_MODEL_VALUES 4 beforePhase INVOKE_APPLICATION 5 afterPhase INVOKE_APPLICATION 5 beforePhase RESTORE_VIEW 1 afterPhase RESTORE_VIEW 1

- 50 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/

FAQ JSF

DEBUG (LogPhaseListener.java:17) - beforePhase RENDER_RESPONSE 6 DEBUG (LogPhaseListener.java:13) - afterPhase RENDER_RESPONSE 6

- 51 Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentation de ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright 2008 - 2009 Developpez LLC. Tout droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.http://javaweb.developpez.com/faq/jsf/