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 :

Création dynamique d'un HtmlAjaxCommandLink -> impossible de faire fonctionner un reRender


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 42
    Par défaut Création dynamique d'un HtmlAjaxCommandLink -> impossible de faire fonctionner un reRender
    Bonjour,

    Je suis un peu paumé sur ce probléme.

    Voici le bout de code que j'ai dans une JSP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <a4j:commandLink ajaxSingle="true" id="editlink" action="#{offBean.doEdit}" reRender="offerOptionForm">
       <h:graphicImage value="/images/icons/edit.jpg" style="border:0" />
       <f:setPropertyActionListener value="#{off}" target="#{offBean.offer}" />
    </a4j:commandLink>
    J'essaie de faire la même opération mais dynamiquement, j'arrive à tous faire sauf l'action reRender.
    Voici le 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
     
    //Création de l'objet parent "HtmlAjaxCommandLink" 
    HtmlAjaxCommandLink actionCommandLink = new HtmlAjaxCommandLink();
    actionCommandLink.setId("updatelink");
    actionCommandLink.setReRender("offerOptionForm");
     
    //Création d'un objet fils "HtmlGraphicImage"
    HtmlGraphicImage actionGraphicImage = new HtmlGraphicImage();
    actionGraphicImage.setId("updatelinkImage");
    actionGraphicImage.setValue("/images/icons/update.jpg");
    actionGraphicImage.setStyle("border:0");
    actionCommandLink.getChildren().add(actionGraphicImage);
     
    //Création d'actionListener
    FacesContext facesContext =  FacesContext.getCurrentInstance();
    MethodExpression nextActionListener = facesContext.getApplication().getExpressionFactory().createMethodExpression(facesContext.getELContext(), "#{offBean.doUpdate}", null, new Class[] {ActionEvent.class});
    actionCommandLink.addActionListener(new MethodExpressionActionListener(nextActionListener));
    ...
    Merci pour ceux qui prendront la peine de trouver une solution a mon probléme ;-)

  2. #2
    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
    setReRender doit marcher.
    utilise a4j:log pour voir ce qui se passe.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 42
    Par défaut
    Je ne connaissais pas <a4j:log>...

    Voila ce que j'obtiens lors de click sur le HtmlCommandLink...

    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
     
     
    debug[10:21:40,470]: search for elements by name 'script' in element form
    debug[10:21:40,470]: Scripts in updated part count : 2
    debug[10:21:40,471]: Update part of page for Id: includedView:offerOptionForm successful
    debug[10:21:40,471]: call getElementById for id= ajax-view-state
    debug[10:21:40,471]: Hidden JSF state fields: [object HTMLSpanElement]
    debug[10:21:40,471]: Namespace for hidden view-state input fields is undefined
    debug[10:21:40,471]: search for elements by name 'input' in element span
    debug[10:21:40,472]: Replace value for inputs: 26 by new values: 1
    debug[10:21:40,472]: Input in response: javax.faces.ViewState
    debug[10:21:40,472]: Found same input on page with type: hidden
    debug[10:21:40,472]: Found same input on page with type: hidden
    debug[10:21:40,473]: Found same input on page with type: hidden
    debug[10:21:40,473]: search for elements by name 'INPUT' in element span
    debug[10:21:40,473]: Replace value for inputs: 26 by new values: 0
    debug[10:21:40,474]: call getElementById for id= _A4J.AJAX.focus
    debug[10:21:40,474]: No focus information in response
    debug[10:21:40,534]: Evaluate script replaced area in document: // LOG.LEVEL = LOG.ALL; //
    debug[10:21:40,534]: Evaluate script replaced area in document: // function clear_includedView_3AofferOptionForm() { _clearJSFFormParameters('includedView:offerOptionForm','',['includedView:offerOptionForm:_link_hidden_','includedView:offerOptionForm:j_idcl']); } function clearFormHiddenParams_includedView_3AofferOptionForm(){clear_includedView_3AofferOptionForm();} function clearFormHiddenParams_includedView_offerOptionForm(){clear_includedView_3AofferOptionForm();} clear_includedView_3AofferOptionForm(); //
    debug[10:21:40,535]: call getElementById for id= org.ajax4jsf.oncomplete

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 42
    Par défaut
    Je ne sais pas pourquoi mais maintenant cela fonctionne

    Dans mon a4j:log, j'obtiens ceci :

    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
     
    debug[10:39:49,733]: search for elements by name 'script' in element form
    debug[10:39:49,733]: Scripts in updated part count : 2
    debug[10:39:49,733]: Update part of page for Id: includedView:offerOptionForm successful
    debug[10:39:49,733]: call getElementById for id= ajax-view-state
    debug[10:39:49,734]: Hidden JSF state fields: [object HTMLSpanElement]
    debug[10:39:49,734]: Namespace for hidden view-state input fields is undefined
    debug[10:39:49,734]: search for elements by name 'input' in element span
    debug[10:39:49,734]: Replace value for inputs: 26 by new values: 1
    debug[10:39:49,734]: Input in response: javax.faces.ViewState
    debug[10:39:49,735]: Found same input on page with type: hidden
    debug[10:39:49,735]: Found same input on page with type: hidden
    debug[10:39:49,735]: Found same input on page with type: hidden
    debug[10:39:49,735]: search for elements by name 'INPUT' in element span
    debug[10:39:49,736]: Replace value for inputs: 26 by new values: 0
    debug[10:39:49,736]: call getElementById for id= _A4J.AJAX.focus
    debug[10:39:49,736]: No focus information in response
    debug[10:39:49,780]: Evaluate script replaced area in document: // LOG.LEVEL = LOG.ALL; //
    debug[10:39:49,781]: Evaluate script replaced area in document: // function clear_includedView_3AofferOptionForm() { _clearJSFFormParameters('includedView:offerOptionForm','',['includedView:offerOptionForm:_link_hidden_','includedView:offerOptionForm:j_idcl']); } function clearFormHiddenParams_includedView_3AofferOptionForm(){clear_includedView_3AofferOptionForm();} function clearFormHiddenParams_includedView_offerOptionForm(){clear_includedView_3AofferOptionForm();} clear_includedView_3AofferOptionForm(); //
    debug[10:39:49,781]: call getElementById for id= org.ajax4jsf.oncomplete
    Par contre dans mon printStack, j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    22-oct.-2009 10:39:49 org.ajax4jsf.context.AjaxContextImpl convertId
    ATTENTION: Target component for id offerOptionForm not found
    Mais le reRender ce fait quand même ...
    J'ai quand même envie de ne pas avoir ce message dans mon printStack

  5. #5
    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
    Je vois:

    debug[10:39:49,733]: Update part of page for Id: includedView:offerOptionForm successful
    ton bean est dans quel scope?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 42
    Par défaut
    Elle est dans "session"

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

Discussions similaires

  1. [Requête] Impossible de faire fonctionner !
    Par Nesta92 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/04/2007, 09h38
  2. Réponses: 5
    Dernier message: 05/12/2006, 23h57
  3. impossible de faire fonctionner le gridlayout
    Par oceane751 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 12/06/2006, 10h42
  4. Réponses: 5
    Dernier message: 22/03/2006, 10h39
  5. impossible de faire fonctionner phppgadmin et pgdmin3
    Par le_ben dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 09/12/2004, 14h27

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