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 :

[selectBooleanCheckbox] immediate = true ne fonctionne pas


Sujet :

JSF Java

  1. #1
    Membre éclairé
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Par défaut [selectBooleanCheckbox] immediate = true ne fonctionne pas
    Bonjour,

    J'ai un formulaire de saisie qui contient différents champs.
    Lorsque l'utilisateur clique sur enregistrer, j'ai une méthode de validation dans mon bean.

    Or cette méthode ne fonctionne bien que si les données saisies sont déjà coté serveur. J'ai donc ajouté le paramètre immediate = true à un selectBooleanCheckbox pour avoir cette valeur coté serveur, cela ne semble pas marcher car la valeur n'est pas settée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <p:autoComplete id="lieudomaine" value="#{saisirMandatForm.societeLieuDomaineComp}" completeMethod="#{saisirMandatForm.completeLieuxDomaines}"
         var="lieu" itemLabel="#{lieu}" itemValue="#{lieu}" converter="SocieteLieuDomaineCompConverter" 
         forceSelection="true" size="25" disabled="#{saisirMandatForm.userLectureSeule}" 
         required="true" requiredMessage="#{msg['DonneesDeBase']} - #{msg['LieuDomaineDeCompetenceEstObligatoire']}" 
         validator="#{saisirMandatForm.validerSaisie}"
         queryDelay="1000" >
    </p:autoComplete>
    
    <p:selectBooleanCheckbox itemLabel="#{msg['PropreALaSociete']}" value="#{saisirMandatForm.propreASociete}" 
    	disabled="#{saisirMandatForm.userLectureSeule}" immediate="true" />
    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
     
    public void validerSaisie(FacesContext context, UIComponent uiComponent, Object objet) {
    		// Un mandat de vacances ou propre à une société doit impérativement être affecté au domaine de compétence "Administration"
    		// ceci principalement pour éviter les erreurs de saisie
    		SocieteLieuDomaineComp valeur = (SocieteLieuDomaineComp) objet;
    		if (currentMandat.isMandatVacances() || currentMandat.isPropreASociete()) {
    			if (valeur != null && !valeur.getDomaineCompetence().isAdministration()) {
    				FacesMessage message = Messages.getMessage("MsgMandatVacancesOuPropreSocieteDoitEtreDomaineAdministration",
    						FacesMessage.SEVERITY_ERROR, null);
    				throw new ValidatorException(message);
    			}
    		}
     
    		if (currentMandat.isArchive() && currentMandat.getDateFin() == null) {
    			FacesMessage message = Messages.getMessage("MsgMandatDateFinObligatoireSiMandatArchivé",
    					FacesMessage.SEVERITY_ERROR, null);
    			throw new ValidatorException(message);
    		}
    	}
    Est-ce qu'il me manque encore quelque chose ?
    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Ta valeur pointe sur

    saisirMandatForm.propreASociete


    mais dans ton code tu lit

    currentMandat.isPropreASociete

    au lieu de
    this.isPropreASociete

  3. #3
    Membre éclairé
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Par défaut
    Oui mais saisirMandatForm.propreASociete a comme getter/Setter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public boolean getPropreASociete() {
    	return currentMandat.isPropreASociete();
    }
     
    public void setPropreASociete(boolean propreASociete) {
    	currentMandat.setPropreASociete(propreASociete);
    }
    et si je mets un point d'arrêt, ça ne passe pas.
    Le truc c'est qu'il passe d'abord dans la méthode de validation "validerSaisie(...)" avant de passer dans le setter, malgré le "immediate=true"

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

Discussions similaires

  1. execute immediate ne fonctionne pas
    Par goute dans le forum Débuter
    Réponses: 2
    Dernier message: 31/08/2009, 09h43
  2. Réponses: 6
    Dernier message: 02/08/2008, 17h58
  3. Réponses: 8
    Dernier message: 30/04/2007, 19h18
  4. []MonCrontrole.visible=true ne fonctionne pas
    Par lapinot dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 01/09/2005, 09h38
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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