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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Balises facelets <ui> non interprétées.


Sujet :

JSF Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 67
    Points : 40
    Points
    40
    Par défaut Balises facelets <ui> non interprétées.
    Bonsoir,

    Je souhaite développer un projet en JSF et plus particulièrement avec facelets pour profiter des avantages qu'il offre en terme de templating.

    J'ai crée un projet web dynamique (JSF 1.2 et facelet) avec eclipse galileo et le plugin Jboss tools.

    J'ai crée un fichier index.jsp, template.xhtml et une page accueil.xhtml.

    Au lancement de l'application, index.jsp fait une redirection vers accueil.xhtml.
    Les balises JSF de type <h:..> et <f:..> sont bien interprétées mais les balises facelets de type <ui:..> ne le sont pas.

    Après plusieurs vérification, je ne pense pas que le problème vienne du web.xml ou du faces-config.xml, malgré pas mal après de recherche, je ne vois pas d'ou vient le problème.

    Voici le code de mes différents fichiers :

    fichier web.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    	version="2.5">
    	<description>Facelets StarterKit</description>
    	<display-name>projet</display-name>
    	<context-param>
    		<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    		<param-value>.xhtml</param-value>
    	</context-param>
    	<context-param>
    		<param-name>facelets.REFRESH_PERIOD</param-name>
    		<param-value>2</param-value>
    	</context-param>
    	<context-param>
    		<param-name>facelets.DEVELOPMENT</param-name>
    		<param-value>true</param-value>
    	</context-param>
    	<context-param>
    		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    		<param-value>client</param-value>
    	</context-param>
    	<context-param>
    		<param-name>com.sun.faces.validateXml</param-name>
    		<param-value>true</param-value>
    	</context-param>
    	<context-param>
    		<param-name>com.sun.faces.verifyObjects</param-name>
    		<param-value>true</param-value>
    	</context-param>
    	<servlet>
    		<servlet-name>Faces Servlet</servlet-name>
    		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>Faces Servlet</servlet-name>
    		<url-pattern>*.jsf</url-pattern>
    	</servlet-mapping>
    	<welcome-file-list>
    		<welcome-file>/index.jsp</welcome-file>
    	</welcome-file-list>
    	<login-config>
    		<auth-method>BASIC</auth-method>
    	</login-config>
    </web-app>
    fichier faces-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0" encoding="UTF-8"?>
    <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
    	xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
    	<application>
    		<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
    		<locale-config />
    	</application>
    	<factory />
    	<lifecycle />
    </faces-config>
    fichier index.jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <jsp:forward page="/pages/accueil.jsf"/>
    fichier template.xhtml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <!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:f="http://java.sun.com/jsf/core"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:ui="http://java.sun.com/jsf/facelet">
     
    <head>
    <title><ui:insert name="titre" /></title>
    </head>
     
    <body>
    <f:view>
     
    	<p><ui:insert name="entete">
    		<ui:include src="entete.xhtml" />
    	</ui:insert></p>
     
    	<div><ui:insert name="menu">Menu1<br />Menu2<br />Menu3<br />
    	</ui:insert></div>
     
    	<div id="contenu"><ui:insert name="contenu">
    		<ui:include src="content.xhtml" />
    	</ui:insert></div>
    </f:view>
    </body>
    </html>
    et le fichier accueil.xhtml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <!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:f="http://java.sun.com/jsf/core"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:ui="http://java.sun.com/jsf/facelet">
     
    <ui:composition template="../template/template.xhtml">
    	<ui:define name="titre">Titre Page</ui:define>
     
    	<ui:define name="menu">
    		<h:outputText value="Menu1" />
    		<h:outputText value="Menu2" />
    		<h:outputText value="Menu3" />
    	</ui:define>
     
    	<ui:define name="contenu">
    		<h:outputText value="Contenu" />
    	</ui:define>
    </ui:composition>
    </html>
    Les jars de mon projet web sont :
    common-annotations.jar
    commons-beanutils.jar
    commons-collections.jar
    commons-digester.jar
    commons-logging.jar
    jsf-api-1.2_02.jar
    jsf-facelets.jar
    jsf-impl-1.2_10.jar
    jsf-tlds.jar
    jstl.jar
    standard.jar

    Je travail avec apache-tomcat-6.0.28.

    Le code source de ma page accueil.xhtml affiche bien les balises <ui:..> de facelets, confirmant bien qu'elles n'ont pu être interprétées.

    Le résultat pour la page est donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Titre Page  Menu1Menu2Menu3  Contenu
    En espérant sincèrement une aide de votre part, j'avoue que je bloque un peu là

    Je pense que dans mon cas la servlet de JSF est bien appelée mais qu'il y
    doit y avoir un problème de configuration pour facelets seulement (car pour les tags JSF, je n'ai pas le problème).

    Merci d'avance pour votre aide .

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    si tu as l'affichage du contenu de la template c'est que les tags ui sont bien interprétés.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 67
    Points : 40
    Points
    40
    Par défaut
    Bonsoir Sniper37,

    Tout d'abord je tenais a te remercier pour ta réponse.

    Justement le template n'est jamais interprété.

    Voici le code source résultat en HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <!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:ui="http://java.sun.com/jsf/facelet">
     
    <ui:composition template="../template/template.xhtml">
    	<ui:define name="titre">Titre Page</ui:define>
     
    	<ui:define name="menu">Menu1Menu2Menu3
    	</ui:define>
     
    	<ui:define name="contenu">Contenu
    	</ui:define>
    </ui:composition>
    </html>
    Comme tu le constate les balises <ui> ne sont pas interprétées. Les libellés sont les résultat de balises <h:output>

    De nouveau le fichier accueil.xhtml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <!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:f="http://java.sun.com/jsf/core"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:ui="http://java.sun.com/jsf/facelet">
     
    <ui:composition template="../template/template.xhtml">
    	<ui:define name="titre">Titre Page</ui:define>
     
    	<ui:define name="menu">
    		<h:outputText value="Menu1" />
    		<h:outputText value="Menu2" />
    		<h:outputText value="Menu3" />
    	</ui:define>
     
    	<ui:define name="contenu">
    		<h:outputText value="Contenu" />
    	</ui:define>
    </ui:composition>
    </html>
    Le résultat correspond exactement à la page accueil.xhtml. Seul les balises JSF sont interprétées. Cela me pousse à penser qu'il y a un problème au niveau de la configuration de facelets.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 67
    Points : 40
    Points
    40
    Par défaut
    Pourtant j'ai l'impression que tout est bien configuré. Les jars ont l'air bon, ainsi que le web.xml et le faces-config.xml.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 67
    Points : 40
    Points
    40
    Par défaut
    Il y avait effectivement un problème de configuration sur mon projet. J'ai pu arranger le problème.

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 104
    Points : 102
    Points
    102
    Par défaut
    Merci de partager ta solution.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 67
    Points : 40
    Points
    40
    Par défaut
    Désolé de répondre après autant de temps. Je ne me souviens pas de tout mais je souhaite néanmoins laisser un message, en me disant qu'un jour cela pourrait peut être aider quelqu'un.

    Mon problème devait effectivement venir d'une erreur de configuration :

    Dans le faces-config, il faut déclarer le handler de facelets :

    Cette configuration concerne seulement JSF 1 car à partir de JSF 2, facelets est integré nativement à JSF.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <application>
      <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
     </application>
    Le code du web.xml avec en gras les parties concernant facelets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?xml version="1.0"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     <description>Facelets StarterKit</description>
     <display-name>appli</display-name>
     <context-param>
      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
      <param-value>.xhtml</param-value>
     </context-param>
     <context-param>
      <param-name>facelets.REFRESH_PERIOD</param-name>
      <param-value>2</param-value>
     </context-param>
     <context-param>
      <param-name>facelets.DEVELOPMENT</param-name>
      <param-value>true</param-value>
     </context-param>
     <context-param>
      <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
      <param-value>client</param-value>
     </context-param>
     <context-param>
      <param-name>com.sun.faces.validateXml</param-name>
      <param-value>true</param-value>
     </context-param>
     <context-param>
      <param-name>com.sun.faces.verifyObjects</param-name>
      <param-value>true</param-value>
     </context-param>
     <context-param>
      <param-name>org.ajax4jsf.SKIN</param-name>
      <param-value>classic</param-value>
     </context-param>
     <filter>
      <display-name>Ajax4jsf Filter</display-name>
      <filter-name>ajax4jsf</filter-name>
      <filter-class>org.ajax4jsf.Filter</filter-class>
     </filter>
     <filter-mapping>
      <filter-name>ajax4jsf</filter-name>
      <servlet-name>Faces Servlet</servlet-name>
      <dispatcher>REQUEST</dispatcher>
      <dispatcher>FORWARD</dispatcher>
      <dispatcher>INCLUDE</dispatcher>
     </filter-mapping>
     <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
     </servlet>
     <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.jsf</url-pattern>
     </servlet-mapping>
     <login-config>
      <auth-method>BASIC</auth-method>
     </login-config>
    </web-app>
    Pour finir il faut bien vérifier que le jar jsf-facelets.jar est bien présent dans le répertoire web-inf/lib du projet.

    Ce code remonte à loin et j'ai peut être oublié certains éléments, j'espère néanmoins que ce post pourra aider.

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Balises de facelet non interprétées
    Par drlim dans le forum JSF
    Réponses: 2
    Dernier message: 28/12/2011, 18h44
  2. [MySQL] Balises HTML non interprétées par MySQL
    Par antow42 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/04/2009, 11h40
  3. Balise <BR /> non interprétée
    Par The_Big_Lebowski dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/04/2009, 15h45
  4. page xml, et balises non interprétés par flash
    Par arnaudrou dans le forum Flash
    Réponses: 13
    Dernier message: 18/08/2006, 09h37
  5. balises non interprétées sous IE mais bien sous FF
    Par trotters213 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 27/04/2006, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo