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 :

message de confirmation


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 58
    Par défaut message de confirmation
    je veut afficher un message de confirmation avant le traitement ou un messaged d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <h:commandButton action="#{bean.action}" title="Supprimer" 
    onclick="  if ('#{bean.toDelete}') alert('inpossible'); else if (confirmer("")) return true; ; " />
    mais ca ne marche pas !!!

  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
    Salut,

    un exemple est expliqué dans l'article suivant.

  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
    Normal que ça marche pas !

    Ton code JSF va créer quelque chose comme ça en HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="if ('true') { ... }"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="if ('false') { ... }"
    Or en Javascript if ('true'), if ('false') ou encore if ('toto') seront toujours évalués à vrai !
    En effet, en Javascript, écrire if (x) { ... } revient à demander si l'objet x existe. C'est un raccourci de if (x != null) { ... } en quelque sorte. Or si x est une chaine de caractère statique (comme 'true' ou 'false'), alors le test sera toujours vrai (if ('true' != null) est toujours vrai !).

    Il te faut donc supprimer les quotes (les ' quoi), de façon à avoir un code généré équivalent à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="if (true) { ... }"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="if (false) { ... }"
    Autrement dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:commandLink onclick="if (#{bean.toDelete}) { ... " .../>
    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 averti
    Inscrit en
    Octobre 2008
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 58
    Par défaut
    j ai besoin de passer un parametre qui est le numero de la ligne a la methode todelete.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:commandLink rendered="#{currentRow.code != 'ar'}" action="#{action.remove}">
     <h:commandButton action="#{action.remove}" onclick=" if(#{action.userToDelete}) {alert('impossible');} " />
     <f:param name="userId" value="#{currentRow.id}" />
    	</h:commandLink>

  5. #5
    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
    Tu n'as pas la possibilité d'appeler une méthode avec un paramètre (sauf en utilisant un langage EL plus évolué, comme EL Functors par exemple).

    Dans ton cas, j'ai l'impression que ce bout de code est intégré à une datatable dont l'objet itéré serait currentRow. Me trompé-je ?
    Si c'est vrai, alors peut-être faudrait-il déplacer la méthode isUserToDelete() dans la classe de currentRow. Comme ça, chaque appel de cette méthode serait propre à l'objet actuellement visualisé sur la ligne donnée...

    ps: Essaie de faire un petit effort sur l'orthographe, c'est plus agréable à lire quand il n'y a pas (trop) de fautes ! Merci
    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

  6. #6
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 58
    Par défaut
    se serrai une tres bonne idée, sauf que le traitement de todelete est un peut plus complexe.

    pour todelete() j'utilise c'est deux parametre { idRow, session value }
    si je pouvais utilisé un <f:param pour la commandeButton come pour la commandelink sauf que ce n'est pas possible
    autre chose le onclick n'est pas valide pour la CommandeLink

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Par défaut
    Citation Envoyé par carinia Voir le message
    j ai besoin de passer un parametre qui est le numero de la ligne a la methode todelete.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:commandLink rendered="#{currentRow.code != 'ar'}" action="#{action.remove}">
     <h:commandButton action="#{action.remove}" onclick=" if(#{action.userToDelete}) {alert('impossible');} " />
     <f:param name="userId" value="#{currentRow.id}" />
    	</h:commandLink>
    Dans ta méthode remove, tu peux utiliser un code qui ressemble à ça :

    En JSF 1.0 - 1.1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FacesContext fc = FacesContext.getCurrentInstance();
    fc.getApplication().createValueBinding("#{currentRow}").getValue(fc);
    En JSF 1.2 (A confirmer, je n'ai plus la syntaxe exacte en tête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FacesContext fc = FacesContext.getCurrentInstance();
    fc.getApplication().evaluateExpressionGet(fc, "#{currentRow}", Object.class);

  8. #8
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 58
    Par défaut
    En JSF 1.0 - 1.1
    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FacesContext fc = FacesContext.getCurrentInstance();
    fc.getApplication().createValueBinding("#{currentRow}").getValue(fc);

    cette solution marche tres bien, sauf que a présent l'action est exécute dans les deux cas si je clique sur ok ou annuler.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:commandLink action="#{adminUserList.adminUserList_removeUserAction}" >
         <h:commandButton action="#{adminUserList.adminUserList_removeUserAction}" onclick=" if (#{adminUserList.userToDelete}) { if(!confirm('Voulez-vous réellement supprimer cet utilisateur ?')) return false;} " />
    <f:param name="userId" value="#{currentRow.id}" />
    <f:param name="userToDelete" value="#{adminUserList.userToDelete}" />
    </h:commandLink>

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/11/2005, 01h16
  2. [C#] Custom Control et message de confirmation
    Par lancelot69 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/12/2004, 15h04
  3. Réponses: 2
    Dernier message: 03/08/2004, 16h24
  4. runtime - messages de confirmation
    Par léonardgénie dans le forum Runtime
    Réponses: 5
    Dernier message: 06/07/2004, 14h28
  5. Réponses: 3
    Dernier message: 22/03/2004, 16h49

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