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


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut [RichFaces] Problème a4j:include
    Bonjour,

    Je suis en train d'utiliser a4j:include dans le cas d'un formulaire à plusieurs pages afin de ne pas tout recharger à chaque fois. J'ai utilisé cet exemple.
    Cependant, lorsque j'arrive à ma dernière page et que je valide mon formulaire, je ne sais pas comment "sortir" de l'include.

    Voici un extrait de mon code :

    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
    <ui:composition 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">
     
     
        <ui:composition template="/medias/design.jspx">
            <ui:define name="titre">Enregistrement</ui:define>
     
            <ui:define name="contenu">
     
                <div id="register_profil">
     
                    <h:panelGrid width="100%" columns="2" columnClasses="col1,col2">
     
                        <rich:panel styleClass="wizard">
                            <h:form>
                                <a4j:include viewId="/wstep1.jspx" />
                            </h:form>
                        </rich:panel>
                    </h:panelGrid>
     
                </div>
            </ui:define>
        </ui:composition>
    </ui:composition>
    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
    <ui:composition 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">
     
     
     
        <div style="position:relative;">
            <div id="register_profil">
                <h:panelGroup>
                    <a4j:commandButton value="Soumettre" action="#{UserBean.validateReg}"/>
                    <a4j:commandButton value="Annuler" action="annuler"/>
                </h:panelGroup>
            </div>
     
        </div>
    </ui:composition>
    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
     
    <navigation-rule> 
        <from-view-id>/finalStep.jspx</from-view-id> 
            <navigation-case>
                <from-outcome>annuler</from-outcome>
                <to-view-id>/index.jspx</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-action>#{UserBean.validateReg}</from-action>
                <from-outcome>success</from-outcome>
                <to-view-id>/index.jspx</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-action>#{UserBean.validateReg}</from-action>
                <from-outcome>failure</from-outcome>
                <to-view-id>/register_failed.jspx</to-view-id>
            </navigation-case> 
    </navigation-rule>
    Je comprend bien que lorsque je clic sur l'un des deux boutons, le serveur va chercher à inclure index.jspx ou register_failed.jspx à la place de finalStep.jspx Je me demande donc comment "sortir" de l'include et charger une autre page que celle ou se trouve mon include.

    Merci d'avance à ceux qui m'aideront.

  2. #2
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mars 2003
    Messages : 55
    Par défaut
    Pour ma part moi je l'aurai fais directement dans ma fonction "validateReg" au lieu de retourner success j'aurai fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    FacesContext context = FacesContext.getCurrentInstance();
    HttpServletResponse response =	(HttpServletResponse)context.getExternalContext().getResponse();
     
    response.sendRedirect("ta page");
    Mais je pense que m'a solution n'est pas la meilleur loin de là.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    Cette solution semble fonctionner, mais le chemin qu'il faut que je mette est :"/Final/faces/index.jspx", Final étant le nom de mon projet sous NetBeans. et je doute que ce soit le bon chemin lorsque je mettrais tout sur le serveur. Donc deux questions :
    - Y a-t-il un moyen de récupérer le chemin courant ?
    - Existe-il un autre moyen de "sortir" de cet include ?

  4. #4
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    Alors, aucune idée ?

  5. #5
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    Bon, et bien problème résolu :
    Pour sortir de l'include, il suffit de rajouter <redirect/> dans les règles de navigation

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/10/2012, 14h29
  2. Problème sur l'affichage d'un a4j:include
    Par spaw3003 dans le forum JSF
    Réponses: 1
    Dernier message: 12/09/2012, 17h48
  3. richfaces: probléme avec a4j:commandButton
    Par Narouto dans le forum JSF
    Réponses: 5
    Dernier message: 08/06/2011, 22h54
  4. Facelet templating + refresh selectif + a4j:include problème
    Par chriscoolletoubibe dans le forum JSF
    Réponses: 6
    Dernier message: 03/04/2010, 00h17
  5. ajax4jsf: problème avec <a4j:include>
    Par heureuxLesOublieux dans le forum JSF
    Réponses: 3
    Dernier message: 18/06/2007, 10h30

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