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] actions au retour d'une méthode


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 110
    Par défaut [Richfaces] actions au retour d'une méthode
    Bonjour,

    J'ai un petite questions:

    J'ai un formulaire dans un modalPanel, et quand je clique sur le bouton "Valider" de ce formulaire, j'appel la méthode save d'un bean. Cette méthode renvoie un String(success ou failed). et dans l'option onComplete de ce bouton, je demande de fermer de modalPanel du formulaire. Maintenant, je voudrai pouvoir faire en sorte que quand la méthode renvoie failed, le modalPanel ne se ferme pas, et que quand elle renvoie success, le modalPanel se ferme.

    Voila, mon bouton, peut-on rajouter une sorte de "if" dans le oncomplete?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <a4j:commandButton value="Valider" reRender="usersDataTable"
    	action="#{usersFormBean.saveOrUpdateUser}" 
    oncomplete="Richfaces.hideModalPanel('editUserPanel');"/>

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Personnellement, je procèderais comme suit :

    Je mets un <h:inputHidden> qui va stocker un booléen correspondant au résultat du save.
    Je mets à jour cette valeur dans la méthode save(), et je la rafraichi sur la page (reRender).
    Enfin, dans le oncomplete, je checke cette valeur.

    Ce qui devrait donner quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private String resultSave; // Avec getter et setter.
     
    public String save() {
        ...
        if (error) {
            this.resultSave = "false";
            return "failed";
        } else {
            this.resultSave = "true";
            return "success";
        }
    }
    Et dans le JSF :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:form id="myForm">
        ...
        <h:inputHidden id="resultatSave" value="#{monBean.resultSave}"/>
        ...
        <a4j:commandButton reRender="resultSave" ... oncomplete="if ($F('myForm:resultatSave') == 'true')) {  Richfaces.hideModalPanel('...'); }"/>
    Explication :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($F('myForm:resultatSave') == 'true')) {  Richfaces.hideModalPanel('...'); }
    signifie que si la valeur du champ dont l'ID est myForm:resultatSave (donc la valeur du inputHidden) est à "true", alors ça signifie que l'action save s'est bien déroulé, et donc que je peux fermer le popup. Sinon, je ne fais rien.
    Pour information, $F("idField") est équivalent à document.getElementById("idField").value en Javascript, grâce à Prototype (qui est utilisé par Richfaces).
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 110
    Par défaut
    Bizarre, en ajoutant tous ça, il n'appel plus la méthode save, par contre quand j'enlève le "oncomplete", la il appel la méthode save.

    Bizarre, vous avez dit bizarre...

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Il doit y avoir un problème Javascript...

    Ecrits le en entier du coup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a4j:commandButton reRender="resultSave" ... oncomplete="if (document.getElementById('myForm:resultatSave').value == 'true')) {  Richfaces.hideModalPanel('...'); }"/>
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 110
    Par défaut
    Pareil, dsl.

    Merci pour ton aide en tous cas.

  6. #6
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Tu peux copier coller ce que tu as mis dans ton code JSF ?
    Tu as bien fait attention aux caractères " et ' ?
    Tu utilises quel navigateur ?
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

Discussions similaires

  1. Récupération en javascript du retour d'une méthode JAVA
    Par la_praline dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 17/01/2011, 14h54
  2. Réponses: 4
    Dernier message: 12/01/2010, 17h44
  3. Intercepter la valeur du retour d'une méthode dans le finally.
    Par Alain Defrance dans le forum Langage
    Réponses: 2
    Dernier message: 05/09/2009, 23h36
  4. Action - passage de paramètres à une méthode
    Par burhud dans le forum Struts 2
    Réponses: 3
    Dernier message: 16/10/2007, 10h12
  5. Plusieurs retours d'une méthode
    Par yanis97 dans le forum Langage
    Réponses: 10
    Dernier message: 15/11/2006, 17h18

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