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 :

rafraîchissement d'une page jsf via son backing bean


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Par défaut rafraîchissement d'une page jsf via son backing bean
    Bonjour à tous,

    je veux savoir s'il y a un moyen permettant de rafraîchir une page jsf à partir d'une methode dans le backing bean de la page jsf(apres un évenement données).

    merci par avance.

  2. #2
    Membre expérimenté
    Inscrit en
    Mai 2004
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 335
    Par défaut
    tu parle la du push????

  3. #3
    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
    A la limite, si l'évenement donné provient de la page (donc appui sur un bouton, sur un lien, etc.) tu peux très bien utiliser le principe des navigation rules, mais en retournant un null (ou "") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:commandButton action="#{monBean.pouet}" value="Faire un truc, puis rafraichir la page"/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public String pouet() {
        // Là, je fais mes trucs, voire mes choses.
        ...
        // Je retourne une chaine vide, comme ça la page sera rafraichie...
        return "";
    }
    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

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Par défaut
    pardon pour le retart et merci pour vos reponses rapides

    apparement ma question n'était pas bien clair, je veux essayer de m'expliquer.

    l'evenement dont je parle est associé à un combobox qui contient une liste des type, en faite lorsque l'utilisateur choisie le type "Fixe" parmi la liste un element outputText et un element inputText doivent s'afficher.
    pour cela j'ai preparer un paneau qui va contenir ces elements dans la page jsp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <h:panelGroup binding="#{addRubriqueBean.dynamicLine}">
    </h:panelGroup>
    puis j'ai associé au combobox l'ecouteur valueChangeListener comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <rich:comboBox id="typeRubrique" valueChangeListener="#
    {addRubriqueBean.typeSelected}" value="#{addRubriqueBean.type}"
    suggestionValues="#{addRubriqueBean.typeList}" />
    et dans le bean associé la methode 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
     
    public String typeSelected(ValueChangeEvent event){
    System.out.print("action produite........");
    HtmlOutputText outPut = new HtmlOutputText();
    outPut.setId("confirmer"); 
    outPut.setValue("Montant");
    HtmlInputText inPut = new HtmlInputText();
    outPut.setTitle("title");
    dynamicLine.getChildren().add(inPut);
     
    System.out.print("tout va bien ici.......");
    return("");
     
    }
    le probleme est que l'évenement n est pris en compte que si j appuis sur le bouton (j'obtiens le message à la console "tout va bien ici......." )mais les elements (input et output text)ne s 'affichent que si je ferme le serveur et je relance l'application pour la deuxieme fois

    celà peut etre due au faite que les element sont effectivement ajouter (dans la memoire) mais ils ne sont pas pris en compte car la page jsf n'est rafraichie.

    est ce que quelqu'un peut voir comment je peux m'ensortir?

    merci de nouveau.

  5. #5
    Membre chevronné Avatar de heid
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mai 2002
    Messages : 388
    Par défaut
    JE connais pas trop richfaces mais je pense que tu dois lui dire quels composant mettre à jour dans un tag de ton composant.
    Sinon vérifies que ta valeur est bien mise à jour dans ton action event, si non, tu peux utiliser le getnewvalue de l'objet passé en paramètre.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 129
    Par défaut
    Si tu utilises RichFaces, ça devrait pas trop poser de problème.

    Je te propose une solution :

    Tu va encapsuler le conteneur comportant tes outputText et intputext par le composant a4j:outputPanel en attribuant à ce dit composant un id (on va prendre "toto")

    Assigne à tes outputText et intputext un attribut rendered="#{monBean.isRendered}". isRendered sera a False par défaut.

    Dans ta méthode typeSelected, tu changera la valeur du boolean "isRendered" en fonction du choix du combo : Fixe ici apparement donc.

    Enfin, rajoute un attribut reRender à ton comboBox comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <rich:comboBox id="typeRubrique" valueChangeListener="#
    {addRubriqueBean.typeSelected}" value="#{addRubriqueBean.type}"
    suggestionValues="#{addRubriqueBean.typeList}" reRender="toto"/>
    Logiquement, ca devrait marcher

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/03/2014, 08h01
  2. [PHP 5.4] Problème de rafraîchissement d'une page via $_SESSION
    Par Joffrey H dans le forum Langage
    Réponses: 1
    Dernier message: 08/02/2013, 05h47
  3. Réponses: 4
    Dernier message: 26/04/2006, 21h10
  4. rafraîchissement d'une page jsp
    Par ran_hery dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 02/08/2005, 14h35
  5. Peut-on créer une page internet via JBuilder?
    Par Xavier dans le forum JBuilder
    Réponses: 2
    Dernier message: 17/02/2005, 21h21

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