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] Rerender des composants coté java


Sujet :

JSF Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 58
    Points
    58
    Par défaut [RichFaces] Rerender des composants coté java
    salut tlm,

    dans la doc de Richfaces il figure nullepart comment actualiser le rendement d'un composant en java.
    le rerender c'est ce qui permet d'actualisé un composant dont les valeurs liées ont changés.

    pour l'instant je dispose de 2 moyens pour actualiser un composant :
    soit par un bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <a4j:commandButton value="update" reRender="Mycomponent" />
     
    <h:outputText id="Mycomponent" value=#{bean.text}/>
    soit par une balise spéciale qui englobe mon composant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <a4j:outputPanel ajaxRendered="true">
        <h:outputText id="Mycomponent" value=#{bean.text}/>
    </a4j:outputPanel>
    je souhaiterai réaliser ces appels directement dans le code java.
    quel est le code source qui permet de faire cela ?

    remarque: le rerender utilisé ici vien de l'ajax4Jsf y a t-il un autre moyen de re-renderer un composant ?? comment ??

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    Veux tu expliquer s'il te plaît ce que tu veux dire par actualiser .. par Java ?

    [edit] càd que dans une application web, c'est le client qui initie une communication, et pas l'inverse ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 58
    Points
    58
    Par défaut
    bonjour djo.mos
    actualiser par java c'est à dire coté serveur, en fait voici mon problème :

    je développe un moteur de recherche qui interroge une base de donnée, le résultat des requetes est affiché dans une datatable, l'affichage des résultats devrait s'actualisé en temps réel à chaque lancement d'une nouvelle recherche. donc juste après la récupération des résultats je modifie la valeur de la datatable qui est une liste.
    le rerendering du composant doit se faire juste après, j'ai essayé avec les balises citées précedemment mais le composant se réaffiche une fois sur deux ou bien le plus souvent avant d'avoir fini les requetes de recherche :/

    donc pour etre sûr que la datatable sera réactualisée apres mes requetes je devrais le faire coté serveur juste apres l'obtention des résultats des requetes.

    voila j'éspère que c'est un peu plus clair, sinon je re-explique no souci

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    J'ai pas bien compris, mais tu peux faire un <a4j:poll> qui réactualise périodiquement ta table ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 58
    Points
    58
    Par défaut
    je vais voir avec <a4j:poll>

    je n'arrive pas à trouvé un moyen d'éxecuter un rerender sur un composant jsf à partir du code java. y a-til un appel une méthode qui fait ça ?

    au fait c'est quoi la différence avec <a4j:push> je n'ai pas bien cerné l'attribut "eventProducer" exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <a4j:push reRender="msg" eventProducer="#{messageBean.addListener}" interval="3000"/>

  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
    Points : 5 059
    Points
    5 059
    Par défaut
    tu peux utiliser
    pour un evenement onclick par exemle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a4j:support event="onclick" action="#{bean.actionToDo}" reRender="msg" />
    dans la methode actionToDo, tu peux faire un traitement particulier et ton composant msg sera réactualisé.

    tu peux egalement le faire avec a4j:commandButton, tu fais le traitement coté java par action="..."

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 58
    Points
    58
    Par défaut
    bon ça à l'air de marcher avec <a4j:poll> en attendant une meilleure solution

    si quelqu'un a trouvé comment faire un rerender en java merci de m'en faire part.

  8. #8
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.

    Ce que tu veux faire est tout simplement inexistant dans le protocole HTTP: c'est un client qui initie une requête, le serveur y répond et le client met à jour son affichage, point.

    @+

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 58
    Points
    58
    Par défaut
    bonjour
    il est donc impossible de déclencher l'évennement reRender à partir du code source java ?

    je souhaiterais en savoir plus sur le processus de reRender des composants jsf, qq1 a-t il des informations la dessus
    merci d'avance.

  10. #10
    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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    ReRender n'est pas un événement, c'est juste une indication utilisée par Ajax4JSF pour savoir quelle(s) partie(s) de la page il devra mettre à jour une fois la réponse de la requête Ajax reçue au niveau client.

    Le "processus" est bien figé :

    La requête Ajax est envoyée par le client, le serveur la reçoit et y répond. Le client reçoit la réponse, et remet à jour certaines parties de la page, en fonction justement de ce qui est défini dans le reRender...

    As-tu des questions plus précises à propos du reRender ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 79
    Points : 58
    Points
    58
    Par défaut
    salut romaintaz

    oui j'aimerais savoir puisqu'il s'agit d'un attribut de balise, il est bien définit dans les taglib de a4j, mais alors il doit y avoir la classe java définissant le tag associée et par le même occasion l'attribut java et les méthodes d'accès à cet attribut.
    ce qu'il m'intéresse ici c'est toute la partie métier de cet attribut concerné, tout comme l'attribut value ou encore id, on a les instructions dans les classes de taglib ou renderer qui vont indiquer à quoi sert exactement tel ou tel attribut de balise.

    donc si qq1 sait exactement ou faut-il regarder dans les sources de a4j merci de m'indiquer.

Discussions similaires

  1. [RichFaces] Rerender des composants coté java
    Par mr1azl dans le forum JSF
    Réponses: 5
    Dernier message: 19/05/2011, 13h05
  2. Réponses: 5
    Dernier message: 07/08/2008, 22h35
  3. Réponses: 1
    Dernier message: 14/06/2008, 15h05
  4. Réponses: 4
    Dernier message: 09/10/2007, 10h00
  5. place des composant des une fenetre java
    Par fantomas261 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 30/04/2007, 23h30

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