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 :

Nullité de champ apres un clic


Sujet :

JSF Java

  1. #1
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut Nullité de champ apres un clic
    Bonjour
    J'ai plusieurs champs de saisis sur un écran et un lien (et non un bouton) de validation, je veux pour configurer en JSF (avec éventuellement un validateur ou facesContext.maximumSeverity) qui me permettra de tester qu'au moins l'un des 3 champs est renseigné.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    avec icefaces tu as un attribut diponible qui est required="true" attribut qu'il est possible de valider car tu as à disposition le partialSubmit (qui n'existe pas dans les autres frameworks JSF)

  3. #3
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Moi j'utilise RichFaces, et l'attribut required existe aussi, mais le pb c'est justement que je ne veux pas gérer indivuellement les champs, mais plutot traiter le formulaire uniquement dans le cas où au moins l'un des champs est renseigné.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  4. #4
    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 t'inspirer de cette solution.

  5. #5
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Ca a l'air de marcher, mais là j'ai un petit souci encore,
    En fait dans mes champs les values sont des champs d'un bean, donc pour recuperer la valeur saisie je fais : ,
    Ca ca marchait bien dans toutes les fonctions mais dans la fonction validate appelée j'ai du null dans ces champs nom du bean. une idée ?
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  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
    ouii parce que la valeur n'est encore mise à jour dans la phase de validation, C'est pour celà qu'il faut recuperer la valeur du composant UI.

  7. #7
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Merci bcp bcp pour toutes ces précisions, effectivement ca marche quand je passe par la valeur du composant, sauf que je trouvais çà un peu crade.
    Une derniere question et je vous embête plus |o|, qcq aurait il deja fait une methode qui recupere l'id d'un composant (quelqu'il soit Input, combo box etc..) et renvoie sa valeur saisie?
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  8. #8
    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
    Citation Envoyé par DevServlet Voir le message
    Merci bcp bcp pour toutes ces précisions, effectivement ca marche quand je passe par la valeur du composant, sauf que je trouvais çà un peu crade.
    C'est le seul moyen de recuperer la valeur d'un composant dans la phase validation, c'est le cycle de vie JSF qui l'impose. la phase Update Model Values vient après.

    Citation Envoyé par DevServlet Voir le message
    Une derniere question et je vous embête plus |o|, qcq aurait il deja fait une methode qui recupere l'id d'un composant (quelqu'il soit Input, combo box etc..) et renvoie sa valeur saisie?
    Tu peux le récupérer en utilisant le binding, mais, je penses que ça rajoute de la complexité pour pas grand chose.

  9. #9
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    T'as un exemple d'utilisation de binding,
    J'ai beaucoup de types de champ sur mon formulaire, si je dois utiliser le code cidessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FacesContext context = FacesContext.getCurrentInstance();
    		UIInput input =(UIInput)context.getViewRoot().findComponent("nomForm:nom");
    pour chaque champ ca fera très crade.
    Peux tu me faire un exemple de binding stp ?
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  10. #10
    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
    chaque composant JSF contient un attribut binding,
    un exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:inputText binding="#{bean.input}" />
    et dans le code du bean

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private HtmlInputText  input;
     
    //getter
    //setter
    je trouve que c'est plus crade d'utiliser le binding juste pour récupérer l'id d'un composant.

  11. #11
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    T'as peut être pas tort, je suis parti pour recuperer toutes les valeurs par la 1ere solution, appremment c la seule pour gérer ce genre de pb.
    Je finis tous mes tests et si pas de pb, je mettrai "resolu"
    Merci d'avance.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  12. #12
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Le raisonnement marche maintenant je veux optimiser,car j'ai un formulaire de presque 30 composants divers (input texte, combo box , calendrier etc...) Y'a til un moyen de recuperer plutot la liste de tous les composants presents dans une boucle et tester s'ils sont renseignés?
    Ca me sera d'une grande utilité.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  13. #13
    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
    Citation Envoyé par DevServlet Voir le message
    Le raisonnement marche maintenant je veux optimiser,car j'ai un formulaire de presque 30 composants divers (input texte, combo box , calendrier etc...) Y'a til un moyen de recuperer plutot la liste de tous les composants presents dans une boucle et tester s'ils sont renseignés?
    Ca me sera d'une grande utilité.
    Ce que tu peux faire c'est de récupérer un composant parent et d'iterer sur les fils pour récupérer les ids, mais, il me semble que c'est un peu complexe pour juste une opération de validation..

    Mais ne je comprend pas bien..Tu veux qu'aucun composant soit renseigné ou quelque uns ?? si il s'agit seulement de vérifier si les composants sont saisieq ajoute un required.
    Sinon tu peux vérifier un composant si un autre a été saisi tu peux utiliser EL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:inputText  required="#{empty bean.value? false:true}" />
    tu peux aussi ne pas afficher le composant si un autre n'est pas saisie ou sur une condition particulière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:inputText rendered="#{bean.viewable}" />

  14. #14
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Je veux ne soumettre le formulaire que si au moins l'un des champs a été renseigné, voila.
    Donc dès qu'un champ est renseigné le formulaire doit être traitable, sinon rien.
    C'est quoi la composant mere de tous les composants, celle dont herite tous les composants?
    Je veux voir si je veux optimiser mon code.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  15. #15
    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
    Sinon fait le dans l'action ou l'actionListener, vérifie si au moins un élément est renseigné si aucun n'est renseigné ajoute un message dans le context pour le composant hidden comme pour la fonction du converter et retourne null.

  16. #16
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Petit exemple pour l'actionListener ? c quoi la difference avec action tout court?
    Px tu me faire un tout petit exemple.
    Sinon y'a til un object dont herite (UIInput,UICalendar, etc...)
    Je veux invoquer la methode Getvalue() sur un object generique susceptible d'être l'un des composants suscités, je sais pas si je me fais comprendre.
    Je sens que je suis pas loin
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  17. #17
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Finalement tout marche bien, et j'ai enfin optimisé comme je le voulais.
    Merci merci.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

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

Discussions similaires

  1. mettre a jour des champs radio après un clic
    Par amarcil dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 07/07/2008, 17h24
  2. vérification champ après champ d'un formulaire
    Par Francis_R dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/10/2005, 08h55
  3. Réponses: 5
    Dernier message: 25/07/2005, 14h03
  4. SOS recup champ après préocédure stockée
    Par seb92 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/11/2004, 07h47
  5. Comment ne pas rejouer une animation après un clic ?
    Par mmmmhhh dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 04/09/2002, 16h11

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