Partage
  • Partager sur Facebook
  • Partager sur Twitter

JSF - Problème CommandButton

Aucune réponse lors de l'appui sur un commandButton

    15 avril 2012 à 20:11:55

    Bonsoir tout le monde,

    Je rencontre un problème lors de l'appui sur un
    <pou:commandButton/>
    
    .

    Celui-ci doit faire appel à une fonction, mais rien ne se passe lors du clic. En mode debug, je remarque qu'il n’atteint même pas la fonction en question.

    Voici la page JSF :
    <h:form id="ajoutTechForm">
                        <div id="titrePage">
                            <h2 class="itemTitrePage">Création d'un nouveau technicien dans CompTech</h2>
                        </div>
                        <div id="titreAdmin">
                            <h1 class="item">1. Création d'un nouveau technicien :</h1>
                            <div id="panelTech">
                                <pou:panel id="ficheTechnicien" header="Fiche du technicien" styleClass="ficheTechPanel">
                                    <div class="nomTech">
                                        <h1 class="sousItemFicheTech">Nom :</h1>
                                        <f:view>
                                            <pou:inputText styleClass="outputText" value="#{TechnicienDTO.nom}"></pou:inputText>
                                        </f:view>
                                        <h:messages/>
                                    </div>
                                    <div class="prenomTech">
                                        <h1 class="sousItemFicheTech">Prénom :</h1>
                                        <f:view>
                                            <pou:inputText styleClass="outputText" value="#{TechnicienDTO.prenom}"></pou:inputText>
                                        </f:view>
                                    </div>
                                    <div class="naissanceTech">
                                        <h1 class="sousItemFicheTech">Date de naissance :</h1>
                                        <f:view>
                                            <pou:calendar styleClass="calendar" effect="explode" value="#{TechnicienDTO.date_naissance}" navigator="true" disabledWeekends="true" pattern="dd-MM-yyyy">
                                                <f:convertDateTime pattern="yyyy-MM-dd"/>
                                            </pou:calendar>
                                        </f:view>
                                    </div>
                                    <div class="identTech">
                                        <h1 class="sousItemFicheTech">Identifiant :</h1>
                                        <f:view>
                                            <pou:inputText styleClass="outputText" value="#{TechnicienDTO.id_ft}"></pou:inputText>
                                        </f:view>
                                    </div>
                                    <div class="gsmTech">
                                        <h1 class="sousItemFicheTech">N° de GSM :</h1>
                                        <f:view>
                                            <pou:inputText styleClass="outputText" value="#{TechnicienDTO.num_gsm}" ></pou:inputText>
                                        </f:view>
                                    </div>
                                </pou:panel>
                            </div>
                            <div id="panelTechBis">
                                <pou:panel id="ficheSpeTech" header="Specifications" styleClass="ficheSpeTech">
                                    <div class="reponsableTech">
                                        <h1 class="sousItem2">Responsable :</h1>
                                        <f:view>
                                            <pou:selectOneMenu value="#{TechnicienDTO.responsable}" styleClass="combo2">
                                                <f:selectItems value="#{Responsable_BDD.nom_reponsables}"/>
                                            </pou:selectOneMenu>
                                        </f:view>
                                    </div>
                                    <div class="mobiliteTech">
                                        <h1 class="sousItem2">Mobilité :</h1>
                                        <f:view>
                                            <pou:inputText styleClass="outputText" value="#{TechnicienDTO.mobilite}"></pou:inputText>
                                        </f:view>
                                    </div>
                                    <div class="domaineTech">
                                        <h1 class="sousItem2">Domaine :</h1>
                                        <f:view>
                                            <pou:selectOneMenu value="#{TechnicienDTO.domaine}" styleClass="combo2">
                                                <f:selectItems value="#{Domaine_BDD.nom_domaines}"/>
                                            </pou:selectOneMenu>
                                        </f:view>
                                    </div>
                                    <div class="localisationTech">
                                        <h1 class="sousItem2">Localisation :</h1>
                                        <f:view>
                                            <pou:selectOneMenu  value="#{TechnicienDTO.localisation}" styleClass="combo2">
                                                <f:selectItems value="#{Localisation_BDD.nom_localisation}"/>
                                            </pou:selectOneMenu>
                                        </f:view>
                                    </div>
                                    <div class="souhaitTech">
                                        <h1 class="sousItem2">Souhait de départ :</h1>
                                        <f:view>
                                            <pou:selectOneRadio styleClass="choixDepart">
                                                <f:selectItem itemLabel="Oui" itemValue="1"/>
                                                <f:selectItem itemLabel="Non" itemValue="2"/>
                                            </pou:selectOneRadio>
                                        </f:view>
                                    </div>
                                    <div class="departDateTech">
                                        <h1 class="sousItem2">Date de départ :</h1>
                                        <f:view>
                                            <pou:calendar styleClass="calendar" value="#{TechnicienDTO.date_depart}" navigator="true" disabledWeekends="true" pattern="dd-MM-yyyy" required="true" requiredMessage="Indiquez une date !" >
                                                <f:convertDateTime pattern="yyyy-MM-dd"/>
                                            </pou:calendar>                  
                                        </f:view>
                                    </div>
                                </pou:panel> 
                            </div>
                        </div>  
                        
                        <div id="tableauProduitsDiv">
                            <h1 class="item">2. Création de la fiche des compétences du technicien :</h1>
                            <div id="panelTableau">
                                <pou:dataTable id="produitTable" var="varTechnique" value="#{TechniqueBDD.techniques}" style="width: 1010px; margin-left: 3px;" paginator="true" rows="20" rowsPerPageTemplate="5,10,15" >
                                                             
                                    <pou:column id="produitColumn" headerText="Produits" style="width: 300px;" styleClass="columnTable" filterBy="#{varTechnique.nom_technique}">
                                        <h:outputText value="#{varTechnique.nom_technique}"  />
                                    </pou:column>
    
                                    <pou:column id="domaineColumn" headerText="Domaines" style="width: 200px; text-align: center;" filterBy="#{varTechnique.id_domaine}">
                                        <h:outputText value="#{varTechnique.id_domaine}" />
                                    </pou:column>
                                    
                                    <pou:column id="competenceColumn" headerText="Compétence" style="width: 200px; text-align: center;" >
                                        <pou:rating stars="5" />
                                    </pou:column>
    
                                </pou:dataTable>
                            </div>
                        </div>
    
                        <div id="confirmButton">
                            <h1 class="item">3. Confirmer la création du nouveau technicien :</h1>
                            <div id="panelConfirm">
                                <pou:commandButton value="Enregistrer le nouveau technicien" action="#{AjoutTechnicienControleur.creation_Technicien}" styleClass="enregistrerButton"/>
                            </div>
                        </div>
                        
                    </h:form>
    


    Et voici la fonction :
    public class Ajout_Technicien_Controleur {
        
        //Connexion à la base de données
        protected static final Connection connV2 = ConnectionBDDV2.getInstance();
        
        //Attribut du bean pour creation Technicien
        private Technicien_DTO technicienDTO ;
        
        //Importation de la liste des techniques
        private Technique_BDD techniqueBDD;
        
        //Importation de la liste des responsables
        private Responsable_BDD responsableBDD;
        
        //Importation de la liste des domaines
        private Domaine_BDD domaineBDD;
        
        //Importation de la liste des localisation
        private Localisation_BDD localisationBDD;
        
        //Variables a insérer dans la BDD
        private String nom ="";
        private String prenom ="";
        private String naissanceDate ="";
        private String identifiant ="";
        private String gsm ="";
        private String responsable = "";
        private String mobilite = "";
        private String domaine = "";
        private String localisation = "";
        private String departDate ="";
        
        //Constructeur
        public Ajout_Technicien_Controleur(){
    
        }
        
        //Methode d'ajout d'un technicien
        public void Creation_Technicien() {
            System.out.println("////////////////Fiche du nouveau technicien\\\\\\\\\\\\\\\\\\");
            //Récupération des valeurs
            nom = this.getTechnicienDTO().getNom();
            System.out.println("Non du technicien : "+nom);
            
            prenom = this.getTechnicienDTO().getPrenom();
            System.out.println("Prenom du technicien : "+prenom);
            
            naissanceDate = this.getTechnicienDTO().getDate_naissance();
            System.out.println("Date de naissance du technicien : "+naissanceDate);
            
            identifiant = this.getTechnicienDTO().getId_ft();
            System.out.println("Identifiant du technicien : "+identifiant);
            
            gsm = this.getTechnicienDTO().getNum_gsm();
            System.out.println("GSM du technicien : "+gsm);
            
            responsable = this.getTechnicienDTO().getResponsable();
            System.out.println("Responsable du technicien : "+responsable);
            
            mobilite = this.getTechnicienDTO().getMobilite();
            System.out.println("Mobilite du technicien : "+mobilite);
            
            domaine = this.getTechnicienDTO().getDomaine();
            System.out.println("Domaine du technicien : "+domaine);
            
            localisation = this.getTechnicienDTO().getLocalisation();
            System.out.println("Localisation du technicien : "+localisation);
        }
    
        /**
         * @return the technicienDTO
         */
        public Technicien_DTO getTechnicienDTO() {
            return technicienDTO;
        }
    
        /**
         * @param technicienDTO the technicienDTO to set
         */
        public void setTechnicienDTO(Technicien_DTO technicienDTO) {
            this.technicienDTO = technicienDTO;
        }
    
        /**
         * @return the techniqueBDD
         */
        public Technique_BDD getTechniqueBDD() {
            return techniqueBDD;
        }
    
        /**
         * @param techniqueBDD the techniqueBDD to set
         */
        public void setTechniqueBDD(Technique_BDD techniqueBDD) {
            this.techniqueBDD = techniqueBDD;
        }
    
        /**
         * @return the responsableBDD
         */
        public Responsable_BDD getResponsableBDD() {
            return responsableBDD;
        }
    
        /**
         * @param responsableBDD the responsableBDD to set
         */
        public void setResponsableBDD(Responsable_BDD responsableBDD) {
            this.responsableBDD = responsableBDD;
        }
    
        /**
         * @return the domaineBDD
         */
        public Domaine_BDD getDomaineBDD() {
            return domaineBDD;
        }
    
        /**
         * @param domaineBDD the domaineBDD to set
         */
        public void setDomaineBDD(Domaine_BDD domaineBDD) {
            this.domaineBDD = domaineBDD;
        }
    
        /**
         * @return the localisationBDD
         */
        public Localisation_BDD getLocalisationBDD() {
            return localisationBDD;
        }
    
        /**
         * @param localisationBDD the localisationBDD to set
         */
        public void setLocalisationBDD(Localisation_BDD localisationBDD) {
            this.localisationBDD = localisationBDD;
        } 
    }
    


    J'avoue être bloqué sur ce point, si quelqu'un à une idée ?

    Merci d'avance
    Fred
    • Partager sur Facebook
    • Partager sur Twitter
      16 avril 2012 à 22:58:09

      Bonjour à tous,

      Voilà quelques indications supplémentaires, lors de l'appuie sur le bouton apapraissent :

      Grave: JSF ne pourra pas créé le bean géré RechercheTechnicienControleur lorsquil sera demandé. Les problèmes suivants ont été détectés :
      - La propriété Recherche_Technicien_DTO du bean géré RechercheTechnicienControleur nexiste pas.
      avr. 16, 2012 10:51:47 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute

      D'ou cela peut venir ?

      Voici mon faces_config.xml :
      <managed-bean>
              <managed-bean-name>Recherche_Technicien_DTO</managed-bean-name>
              <managed-bean-class>DTO.Recherche_Technicien_DTO</managed-bean-class>
              <managed-bean-scope>session</managed-bean-scope>
       </managed-bean>
           <!-- Controleur Recherche_Technicien -->
           <managed-bean>
              <managed-bean-name>RechercheTechnicienControleur</managed-bean-name>
              <managed-bean-class>Controleurs.Recherche_Technicien_Controleur</managed-bean-class>
              <managed-bean-scope>session</managed-bean-scope>
              <managed-property>
                  <property-name>Recherche_Technicien_DTO</property-name>
                  <property-class>DTO.Recherche_Technicien_DTO</property-class>
                  <value>#{rechercheTecnicienDTO}</value>
              </managed-property>
          </managed-bean>
      


      Merci
      Fred
      • Partager sur Facebook
      • Partager sur Twitter
        17 avril 2012 à 16:13:33

        Bien vu :) mais ce problème n'en était pas un du fait que l'erreur était la même dans ma classe JAVA.

        Cela ne pourrait pas venir du scope de mon paramètre Recherche_Technicien_DTO qui est en "session" ?

        Toujours le même message d'erreur :(
        • Partager sur Facebook
        • Partager sur Twitter

        JSF - Problème CommandButton

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown