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 :

h:commandButton onclick et action, attribut d'un bean dans du javascript


Sujet :

JSF Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Points : 8
    Points
    8
    Par défaut h:commandButton onclick et action, attribut d'un bean dans du javascript
    Bonjour à tous,

    je vous écrit car j'ai une question et un problème:

    - la question: dans un commandButton, lorsque que je clic sur le bouton dans ma page, c'est l'action ou le onclick qui s'execute en premier?

    - le problème:
    j'ai une page contenant une datatable (basée sur liste d'éléments) contenant elle même plusieurs colonnes dont une contenant des h:selectBooleanCheckbox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <h:dataTable id="prestataires" value="#{prestataires}" var="presta" rendered="#{prestataires != null and prestataires.rowCount>0}"
         styleClass="prestaRechercheTable" >
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:selectBooleanCheckbox id="chk" value="false">
                          <a4j:support event="onclick"
                                       action="#{selectedPrestataire.checkStructuresRattachees(presta)}"
                                       reRender="validButtons" />
                        </h:selectBooleanCheckbox>
    Lorsque j'en choisi un, je met à jour une liste d'éléments (elle aussi) pour savoir quels éléments sont choisis.

    En bas de page se trouve mon bouton se trouvant dans un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a4j:outputPanel id="validButtons" ajaxRendered="true">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:commandButton action="#{selectedPrestataire.rattacherStructuresRattachees()}"
                                 onclick="if(!window.confirm('#{selectedPrestataire.messageStructRattach}')) {return false;}"
                                   value="Rattacher"
                                   styleClass="formButton"
                                   style="width: 166px;"/>
    Celui ci permet dans mon bean de rattacher les éléments choisis à un autre type d'élément. Mais avant d'executer l'action, j'affiche une pop-up javascript contenant un message (String créé dans mon bean). Ce message reprend les noms des éléments choisis.

    Ou tout du moins j'aimerai afficher car voila le problème: ma pop-up ne s'affiche pas!!!

    Dans chacune des fonctions (du bean) appelées par ces éléments, j'ai fait de l'affichage pour savoir si le comportement est bon, et il l'est; ainsi que mon message...

    Pourquoi ma pop-up ne s'affiche pas?
    Et si je ne peux appeler un attribut de mon bean dans mon javascript, comment puis arriver à mes fins?

    Merci d'avance pour votre aide...

  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 : 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
    Hello,

    La réponse à ta question tout d'abord : le onclick s'exécute toujours avant l'action(Listener), vu qu'il s'agit d'un événement client (sur le navigateur). C'est d'ailleurs pour ça que tu peux stopper un envoi de requête grâce à des return false, comme tu le fais dans ton code d'ailleurs.

    Ton problème maintenant : un coup d'oeil rapide ne m'a pas permis de trouver de souci particulier, et donc je ne vois pas pourquoi ça ne marcherait pas. Une idée toutefois : est-ce que ton #{selectedPrestataire.messageStructRattach} retourne une chaine correctement échappée ?
    Par exemple, si la chaine retournée est "c'est le week-end", le JavaScript généré sera la suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!window.confirm('c'est le week-end')) { return false; }
    Comme tu peux le voir, ça pose un problème ici !

    Vérifie ce point, on ne sait jamais...

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Effectivement, le problème vient bien de la chaine que je retourne dans mon message!

    Merci pour la réponse rapide

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/05/2013, 12h36
  2. [Security] attribut d'un bean dans la property d'un autre
    Par progamer54 dans le forum Spring
    Réponses: 3
    Dernier message: 29/11/2007, 12h41
  3. Réponses: 2
    Dernier message: 24/01/2007, 16h05
  4. Acces aux attributs d'un bean dans une jsp
    Par mariemor64 dans le forum Struts 1
    Réponses: 2
    Dernier message: 02/06/2006, 11h32
  5. Réponses: 4
    Dernier message: 11/02/2005, 15h20

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