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 :

[RichFaces] Problème


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Par défaut [RichFaces] Problème
    Bonjour,

    Je suis en train de développer une application web avec RichFaces.

    Je travaille avec une page XHTML et j'intègre RichFaces dans celle-ci.

    Mon but serait de travailler avec des pages JSP + RichFaces plutôt que qu'avec des pages XHTML + RichFaces.

    A titre d'exemple, je réalise une page d'authentification et j'arrive à authentifier avec succès grâce au Managed Bean (lié au JSF).

    Le code de cette page est :
    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
    <html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">
    <head>
    <title>Authentification</title> 
    </head>
    <body>
      <h:outputText value="Login: "/>  
                <h:inputText id="log" value="#{Verification.utilisateur.login}" />
    <h:outputText value="Mot de passe:" />
    <h:inputSecret id="mdp" value="#{Verification.utilisateur.password}"/>
    <a4j:commandButton id="ButtonID" value="Connection" action="#{Verification.val}" >   </a4j:commandButton>
    </body>
    </html>
    Je veux juste rendre les balises de RichFaces supportées par les JSP.

    Donc cette page d'authentification doit devenir authentification.jsp et bien sûr, elle doit supporter les RichFaces (l'authentification reste identique : elle fait appel à la classe Verification).

    Normalement, les lignes qui doivent être modifiées contiennent nécessairement ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">
    Et le fichier web.xml doit probablement subir quelques changements.

    L'ancienne version est
    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" id="WebApp_ID" version="2.5">
      <display-name>firstRichFaces</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      <context-param>
        <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
        <param-value>com.sun.facelets.FaceletViewHandler</param-value>
      </context-param>
      <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
      </context-param>
      <context-param>
        <param-name>org.richfaces.CONTROL_SKINNING</param-name>
        <param-value>enable</param-value>
      </context-param>
      <context-param>
        <param-name>org.richfaces.SKIN</param-name>
        <param-value>emeraldTown</param-value>
      </context-param>
      <filter>
        <display-name>RichFaces Filter</display-name>
        <filter-name>richfaces</filter-name>
        <filter-class>org.ajax4jsf.Filter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>richfaces</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></web-app>
    Pour que toutes les pages web s'exécutent avec l'extension .jsp

    Merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Par défaut
    J'ai essayé avec cette solution
    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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
    <%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
     
    <%@ taglib prefix="a4j" uri="http://richfaces.org/a4j" %>
    <%@ taglib prefix="rich" uri="http://richfaces.org/rich" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>authentification</title>
     
    </head>
    <body>
    <f:view>     
        <h:outputText value="Login: "/>  
        <h:inputText id="log" value="#{verification.utilisateur.login}"/>
        <h:outputText value="Mot de passe:" /><h:inputSecret id="mdp" value="#{verification.utilisateur.password}"></h:inputSecret>
     
        <a4j:commandButton id="ButtonID" value="Connection" action="#{verification.val}" >  
        </a4j:commandButton>
    </f:view>
    </body>
    </html>
    mais elle m'affiche l'erreur suivante
    org.apache.jasper.JasperException: An exception occurred processing JSP page /Authentification.jsp at line 15

    12:
    13: </head>
    14: <body>
    15: <f:view>
    Quand je crée une page JSP, il me donne plusieurs propositions (soit jsp avec html, soit avec jsf, ...)

    Peut-être que je choisis une version erronée de page JSP...

    Egalement, dans la page .xhtml j'ai cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns:ui="http://java.sun.com/jsf/facelets"
    Et dans la page JSP, je ne mets pas son correspondant

    Donc, j'aimerais avoir juste une page JSP qui supporte RichFaces et JSF.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Par défaut
    Concernant la modification possible pour le fichier web.xml, je pense que celui-ci doit avoir la structure suivante
    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" id="WebApp_ID" version="2.5">
      <display-name>firstRichFaces</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      <context-param>
        <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
        <param-value>com.sun.facelets.FaceletViewHandler</param-value>
      </context-param>
      <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.jsp</param-value>
      </context-param>
      <context-param>
        <param-name>org.richfaces.CONTROL_SKINNING</param-name>
        <param-value>enable</param-value>
      </context-param>
      <context-param>
        <param-name>org.richfaces.SKIN</param-name>
        <param-value>emeraldTown</param-value>
      </context-param>
      <filter>
        <display-name>RichFaces Filter</display-name>
        <filter-name>richfaces</filter-name>
        <filter-class>org.ajax4jsf.Filter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>richfaces</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>*.jsp</url-pattern>
      </servlet-mapping></web-app>
    mais je pense que le problème pour la page JSP vient de l'entête...

    Ma solution est :
    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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
    <%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
     
    <%@ taglib prefix="a4j" uri="http://richfaces.org/a4j" %>
    <%@ taglib prefix="rich" uri="http://richfaces.org/rich" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>authentification</title>
     
    </head>
    <body>
    <f:view>
        <h:outputText value="Login: "/>  
        <h:inputText id="log" value="#{verification.utilisateur.login}"/>
        <h:outputText value="Mot de passe:" /><h:inputSecret id="mdp" value="#{verification.utilisateur.password}"></h:inputSecret>
        <a4j:commandButton id="ButtonID" value="Connection" action="#{verification.val}" >  
        </a4j:commandButton>
    </f:view>
    </body>
    </html>
    Et je pense que je dois ajouter dans l'entête cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib prefix="f2"  uri="http://java.sun.com/jsf/facelets"%>
    Merci d'avance

  4. #4
    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
    Par défaut
    avec Richfaces tu es obligé d'utiliser Facelets avec la representation xml des pages, la déclaration des taglib se fait en xml.
    tu trouvera des exemples dans les tutoriels JSF/Richfaces.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Par défaut
    merci pour la réponse,

    Le contenu de fichier web.xml après une petite modification est :
    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" id="WebApp_ID" version="2.5">
      <display-name>firstRichFaces</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      <context-param>
        <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
        <param-value>com.sun.facelets.FaceletViewHandler</param-value>
      </context-param>
      <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.jsp</param-value>
      </context-param>
      <context-param>
        <param-name>org.richfaces.CONTROL_SKINNING</param-name>
        <param-value>enable</param-value>
      </context-param>
      <context-param>
        <param-name>org.richfaces.SKIN</param-name>
        <param-value>emeraldTown</param-value>
      </context-param>
      <filter>
        <display-name>RichFaces Filter</display-name>
        <filter-name>richfaces</filter-name>
        <filter-class>org.ajax4jsf.Filter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>richfaces</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>*.jsp</url-pattern>
      </servlet-mapping></web-app>
    Je modifie juste ces deux lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <param-value>.xhtml</param-value>
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <url-pattern>*.jsf</url-pattern>
    Comme je l'ai dit, l'ancienne version fonctionne avec des pages .xhtml

    Et comme je dis juste l'exemple que j'ai déjà cité avec la page acceuil.xhtml (qui supporte richfaces et JSF), je dois utiliser la même balise RichFaces mais cette fois avec des page JSP.

    Si quelqu'un connait le nouveau format de la page jsp, ou bien la nouvelle syntaxe du fichier web.xml, n'hésitez pas à m'en faire part.

  6. #6
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
      </context-param>

    tu trouvera la bonne config du web.xml sur la documentation de Richfaces ou dans les tutoriels de ce forum..
    un tutoriel est sur ma signature.

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 110
    Par défaut
    Si tu bosses avec Eclipse, saches que pour bénéficier de l'auto-complétion, tu dois bosser avec des fichiers ".jspx".
    La configuration se fait dans le web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
    <context-param>
        <description>Define the page source file extension</description>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.jspx</param-value>
    </context-param>
    ...
    Donc tu as la propriété, la valeur (ensuite tu mets ce que bon te semble par exemple fichier.monPseudo quoi que je n'ai jamais testé )

Discussions similaires

  1. [RichFaces] Problème a4j:include
    Par JoeBurtonn dans le forum JSF
    Réponses: 4
    Dernier message: 27/06/2008, 14h23
  2. [JSF & RichFaces] problème binding
    Par drim dans le forum JSF
    Réponses: 9
    Dernier message: 19/04/2008, 13h24
  3. [RichFaces]Problème de rafraichissement Ajax
    Par Rom1984 dans le forum JSF
    Réponses: 6
    Dernier message: 23/01/2008, 15h45
  4. Réponses: 4
    Dernier message: 23/01/2008, 11h35
  5. Réponses: 2
    Dernier message: 14/01/2008, 17h32

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