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 :

La valeur d'un champ devient null lorsque je fait un submit


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 226
    Par défaut La valeur d'un champ devient null lorsque je fait un submit
    bonjour,

    Je posséde un formulaire avec plusieurs champs. Le dernier champ de mon formulaire depand du type d'authentification choisi. Le type d'authentification se choisit avec un radio bouton (regular ou ssl). Si le type est REGULAR alors le champ certificat est inactif (disabled=true) sinon il est actif.
    Lorsque que je suis dans mon formulaire et que je m'amuse à choisir les types alors mon champ passe bien de inactif a actif et invercement.

    Le problème est lorsque j'essaie de valider mon formulaire avec le type SSL où le champ certificat doit donc être rempli. A ce moment la valeur de mon champ est toujours null peut importe se que j'écris dedans. Le problème c'est qu'il ne passe pas par le setteur.

    code jsp:
    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
     
    <h:form id="formUpdateGateway">
        <h:messages layout="table" styleClass="errorMsg"/>
           <h:panelGrid columns="2">
                <h:outputText value="#{bundle.createGateway_typeAuthentification}"/>
                <h:selectOneRadio valueChangeListener="#{UpdateGateway.AuthentificationValueChanged}" value="#{UpdateGateway.authSelected}" onchange="submit();">
                      <f:selectItems value="#{UpdateGateway.authOptions}"/>
                 </h:selectOneRadio>
     
                  <h:panelGroup>
                      <h:outputText value="#{bundle.createGateway_certificat}" styleClass="#{UpdateGateway.isValidCertif ? '' : 'errorMsg'}"/>
                       <span class="errorMsg">*</span> 
                    </h:panelGroup>
                    <h:inputText disabled="#{not UpdateGateway.isMendatoryCertif}" value="#{UpdateGateway.certif}"/>
                 </h:panelGrid>
     
                 <h:commandButton type="submit" action="#{UpdateGateway.submitUpdateGatewayAction}" id="submitUpdateGateway" 
                                                 value="#{bundle.submit}" styleClass="default_button"/>
    </h:form>
    voici mon code java:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    public class UpdateGateway {
        private String authSelected;
        private String certif;
        private boolean isMendatoryCertif = true;
     
        public UpdateGateway() throws NamingException {
            if (getGateway().getSecurityType() == null) {
                authSelected = SecurityType.REGULAR.toString();
            } else {
                authSelected = getGateway().getSecurityType().toString();
            }
     
            if(authSelected.equals(SecurityType.REGULAR.toString())) {
                isMendatoryCertif = false;
            }
            certif = getGateway().getCertificateAlias();
            System.out.println("constructeur: " + certif);
        }
     
        public void AuthentificationValueChanged(ValueChangeEvent event){
            final String value = event.getNewValue().toString();
            if(value.equals(SecurityType.SSL.toString())) {
                isMendatoryCertif = true;
            } else {
                certif = null;
                isMendatoryCertif = false;
            }
            System.out.println("listener: " + certif);
        }
     
        public String getCertif() {
            return this.certif;
        }
     
        public void setCertif(final String certif) {
            this.certif = certif;
            System.out.println("setteur: " + certif);
        }
    }

  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
    il est desabled le champs input quad tu envoies le formulaire?

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 226
    Par défaut
    Dans le constructeur j'ai ajouté l'affichage de la valeur de la variable "isMandatoryCertif" à la fin du constructeur elle est encore à false. Donc mon champ est disabled il deviendra actif au moment où le listener est excécuté.

    Je ne vois pas comment contourner la chose car à l'initialisation mon champ doit être disabled (la premiere fois où l'on arrive sur la page)

  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
    Par défaut
    Citation Envoyé par Edta Voir le message
    Dans le constructeur j'ai ajouté l'affichage de la valeur de la variable "isMandatoryCertif" à la fin du constructeur elle est encore à false. Donc mon champ est disabled il deviendra actif au moment où le listener est excécuté.

    Je ne vois pas comment contourner la chose car à l'initialisation mon champ doit être disabled (la premiere fois où l'on arrive sur la page)
    tu dois réactualiser la page avant d'envoyer le formulaire. si tu utilises richfaces c'est facile à faire..

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 226
    Par défaut
    non, je ne dois utiliser que les librairies de base. Comment puis je reactualiser la page ? et a quel moment dois je le faire?

  6. #6
    Membre expérimenté
    Inscrit en
    Mai 2004
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 335
    Par défaut
    disable ton composant en utilisant du javascript

Discussions similaires

  1. [AC-2010] Ne pas afficher un séparateur lorsque la valeur du champ est nulle
    Par Stéphane Abras dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 11/06/2013, 10h50
  2. Valeur d'un champ Numerique à nulle
    Par FtF Nemesis dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/07/2011, 11h59
  3. Réponses: 5
    Dernier message: 09/12/2007, 16h20
  4. [SQL] Mettre la valeur d'un champ à "null"
    Par lodan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/11/2006, 19h08
  5. message d'erreur lorsque j'essaie de changer la valeur d'un champ.
    Par cladsam dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/06/2006, 14h00

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