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 :

Attribution de deux actions à un bouton


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 121
    Par défaut Attribution de deux actions à un bouton
    J'utilise JSF et j'ai un commandButton, je veux que sa première action est d'exécuter une fonction javaScript et sa deuxième action est d'appeler une fonction de bean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action="#{envoi.boutonActionDest}"
    .
    Comment je peux attribuer ces deux actions au meme commandButton?
    Merci d'avance.

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="javascript:xxxx"

  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
    Tout simplement comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:commandButton onclick="monJavascript();" action="#{monBean}"/>
    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
    Janvier 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 121
    Par défaut
    Citation Envoyé par romaintaz Voir le message
    Tout simplement comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:commandButton onclick="monJavascript();" action="#{monBean}"/>
    Peut être j'ai mal formulé ma question car avec votre code dans un seul clique on appelle la fonction javaScript et le bean or je veux que dans le premier clique sur le bouton j'appelle la fonction javaScript et dans un deuxième clique sur le meme bouton j'appelle la fonction de mon bean.
    Merci

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 152
    Par défaut
    Je vois plusieurs solutions possibles:
    1) mettre en place 2 boutons, dans le managedBean une variable d'état. Lorsqu'on clique sur le premier bouton la variable passe à 1 et dans le second bouton, l'attribut rendered="#{monBean.maVariable == 1}"

    2) travailler avec un backing bean qui va permettre de travailler sur les attributs action et onclick du bouton

    Voilà pour l'info.

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 121
    Par défaut
    Citation Envoyé par piopium Voir le message
    2) travailler avec un backing bean qui va permettre de travailler sur les attributs action et onclick du bouton

    Voilà pour l'info.
    Je dois utiliser un seul bouton, j'ai pas compris la deuxième solution, pouvez vous m'expliquer un peu plus? Merci

  7. #7
    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
    C'est un peu tordu comme comportement (je trouve) mais ça peut se faire en utilisant un champ caché indiquant le nombre de fois où l'utilisateur a cliqué sur le bouton.
    Lors du 1er clic, on exécute le Javascript, et dans le cas contraire, on exécute l'action du bean.

    Cela se traduit ainsi :


    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
     
    <input type="hidden" id="nbClicBouton" value="0"/>
     
    <h:commandButton action="#{monBean.monAction}" onclick="return testBtn();"/>
     
    <script type="text/javascript">
    function testBtn() {
        var obj = document.getElementById("nbClicBouton");
        if (obj.value == "0") {
            // Premier clic sur le bouton...
            executeMethodeJavascript();
            obj.value = "1";
            // En retournant false, le onclick du commandButton retournera lui-même false, et le bouton n'enverra rien au serveur, et donc l'action au niveau du bean ne sera pas exécutée...
            return false;
        }
        // Le bouton a déjà été cliqué.
        // En retournant true, le onclick du commandButton retournera lui-même true, et le bouton enverra la requête au serveur, et donc l'action au niveau du bean sera exécutée...
        return true;
    }
    </script>
    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. Attribuer deux actions à un bouton
    Par minos23 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 28/04/2009, 03h49
  2. Bouton spécial avec deux icones et deux actions différentes
    Par dk dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 10/10/2007, 15h28
  3. deux actions pour un bouton
    Par allhambra dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/07/2007, 11h34
  4. donner deux action a un bouton
    Par krikete13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/06/2007, 23h02
  5. [PHP-JS] Deux actions sur un bouton ?
    Par FraK dans le forum Langage
    Réponses: 6
    Dernier message: 01/04/2007, 11h06

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