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 :

Property 'onAjoutProjetButton' not found on type


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java Débutant
    Inscrit en
    Juin 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java Débutant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 22
    Points : 15
    Points
    15
    Par défaut Property 'onAjoutProjetButton' not found on type
    bonjour à tous,

    Je rencontre un problème à l'affichage de mon application web

    javax.el.PropertyNotFoundException: Property 'onAjoutProjetButton' not found on type fr.itldev.tazaWebapp.projet.ListeProjets
    et je n'arrive pas à voir où est le problème dans les fichiers en rapport.

    ListeProjets.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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package fr.itldev.tazaWebapp.projet;
     
    import fr.itldev.model.HistoBuild;
     
    import fr.itldev.tazaWebapp.data.DataAccess;
    import fr.itldev.model.Projet;
    import fr.itldev.service.GitService;
    import fr.itldev.service.MvnService;
    import fr.itldev.tazaWebapp.util.NavigationCases;
    import java.io.IOException;
    import java.util.List;
    import javax.faces.application.FacesMessage;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.ViewScoped;
    import javax.faces.context.FacesContext;
    import org.primefaces.event.SelectEvent;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
     
    /**
     *
     * @author 007micke
     */
    @Component
    @ManagedBean
    @ViewScoped
    public class ListeProjets {
     
        @Autowired
        DataAccess dataAccess;
        private Projet projetSelectionne;
        private HistoBuild build;
        private List<HistoBuild> builds;
     
        public Projet getProjetSelectionne() {
            return projetSelectionne;
        }
     
        public void setProjetSelectionne(Projet projetSelectionne) {
            this.projetSelectionne = projetSelectionne;
        }
     
     
     
        public void onRowSelect(SelectEvent event) {
            try {
                projetSelectionne = (Projet) event.getObject();
                dataAccess.setProjetCourant(projetSelectionne);
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Info", "vous venez de selectioner le projet " + projetSelectionne.getNomProjet() + " avec succés!"));
            } catch (Exception ex) {
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erreur", ex.getMessage()));
            }
        }
     
        public String onAjoutProjetButton(){
            dataAccess.setProjetCourant(new Projet());
            return NavigationCases.AJOUT_PROJET;
        }
     
        public void onMajButton(){
            try {
                GitService.gitSynchro(projetSelectionne);
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Info", "Mise à jour du projet " + projetSelectionne.getNomProjet() + " réussie!"));
            } catch (Exception ex) {
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erreur", ex.getMessage()));
            }
        }
     
        public void onBuildButton() {
            try {
                MvnService.builder(projetSelectionne);
                this.build = MvnService.copier(projetSelectionne);
                dataAccess.setBuild(projetSelectionne, build);
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Info", "Build du projet " + projetSelectionne.getNomProjet() + " réussie!"));
            } catch (Exception ex) {
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erreur", ex.getMessage()));
            }
        }
     
        public Projet afficherCommit(SelectEvent event){
            projetSelectionne = (Projet) event.getObject();
            dataAccess.setProjetCourant(projetSelectionne);
            return projetSelectionne;
        }
    }
    listeProjets.xhtml
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:p="http://primefaces.org/ui"
          xmlns:f="http://java.sun.com/jsf/core">
        <h:body>
            <ui:composition template="/WEB-INF/inc-templates/main-template.xhtml">
                <ui:param name="titrePage" value="Liste des projets" />
                <ui:define name="content">
     
                    <p:messages id="messages" showDetail="true" autoUpdate="true" closable="true" /> 
                    <p:dataTable var="projet" value="#{dataAccess.projets}" selectionMode="single"
                                 selection="#{dataAccess.projetCourant}" rowKey="#{projet.nomProjet}" editable="true">
                        <!--<p:ajax event="rowSelect" listener="#{listeProjets.onRowSelect}"/>-->
                        <p:ajax event="rowSelect" update=":form:tabView:displayProjet :form:tabView:displayCommit :form:tabView" oncomplete="dlg.show()"/>
                        <p:column headerText="Modifier" style="width:2%">
                            <p:commandButton action="#{listeProjets.onAjoutProjetButton()}" icon="ui-icon-pencil"/>
                        </p:column>
                        <p:column headerText="Nom Projet">
                            <h:outputText value="#{projet.nomProjet}"/>
                        </p:column>
                        <p:column headerText="Format d'archive" style="width:10%">
                            <p:cellEditor>
                                <f:facet name="output">
                                    <h:outputText value="#{projet.formatArchive}"/>
                                </f:facet>
                                <f:facet name="input">
                                    <h:inputText value="#{projet.formatArchive}" style="width:100%"/>
                                </f:facet>
                            </p:cellEditor>
                        </p:column>
                        <p:column headerText="Dernier commit">
                            <h:outputText value="#{projet.commit.nomCommit}"/>
                        </p:column>
                        <p:column headerText="Etat projet">
                            <h:outputText value="à jour"/>
                            <p:commandButton action="#{listeProjets.onMajButton()}" icon="ui-icon-refresh"/>
                        </p:column>
                        <p:column headerText="New Build" style="text-align: center">
                            <p:commandButton action="#{listeProjets.onBuildButton()}" icon="ui-icon-gear"/>
                        </p:column>
                        <p:column>
                            <p:rowEditor/>
                        </p:column>
                    </p:dataTable>
     
                    <!-- Début du pop'up -->
                    <p:dialog header="Infos lié au projet #{dataAccess.projetCourant.nomProjet}" widgetVar="dlg" resizable="false">
                        <p:tabView id="tabView">
                            <p:tab id="tabProjet" title="Detail du projet">
                                <h:panelGrid id="displayProjet" columns="2" style="margin-bottom:10px">
                                    <h:outputText value="Nom du projet :"/>
                                    <h:outputText value="#{dataAccess.projetCourant.nomProjet}"/>
     
                                    <h:outputText value="Emplacement local :"/>
                                    <h:outputText value="#{dataAccess.projetCourant.repoLocal}"/>
     
                                    <h:outputText value="Emplacement GIT :"/>
                                    <h:outputText value="#{dataAccess.projetCourant.repoDistant}"/>
                                </h:panelGrid>
                            </p:tab>
                            <p:tab id="tabCommit" title="Dernier Commit">
                                <h:panelGrid id="displayCommit" columns="2" style="margin-bottom:10px">  
                                    <h:outputText value="idCommit:" />  
                                    <h:outputText value="#{dataAccess.projetCourant.commit.id}" />  
     
                                    <h:outputText value="nomCommit:" />  
                                    <h:outputText value="#{dataAccess.projetCourant.commit.nomCommit}" />  
     
                                    <h:outputText value="dateCommit:" />  
                                    <h:outputText value="#{dataAccess.projetCourant.commit.dateCommit}"/>  
                                </h:panelGrid>
                            </p:tab>
                            <p:tab id="tabBuild" title="Liste des Builds">
                                <h:dataTable id="displayBuild" var="build" value="#{dataAccess.projetCourant.histoBuilds}">  
                                    <f:facet name="header">
                                        Liste des Builds pour le projet #{dataAccess.projetCourant.nomProjet}
                                    </f:facet>
                                    <p:column headerText="Nom de l'archive">
                                        <h:outputText value="#{build.nomBuild}"/>
                                    </p:column>
                                    <p:column headerText="Dossier de l'archive">
                                        <h:outputText value="#{build.dirBuild}"/>
                                    </p:column>
                                    <p:column headerText="Date de création du dossier">
                                        <h:outputText value="#{build.dateBuild}"/>
                                    </p:column>
                                    <f:facet name="footer">
                                        <p:commandButton value="Download" icon="ui-icon-arrowthichk-n"/>
                                    </f:facet>
                                </h:dataTable>
                            </p:tab>
                        </p:tabView>
     
                    </p:dialog>
     
                    <p:commandButton action="#{listeProjets.onAjoutProjetButton()}" value="Ajouter un projet"/>
                    <p:commandButton action="#{listeProjets.onMajButton()}" value="MàJ Projet"/>
                    <p:commandButton action="#{listeProjets.onBuildButton()}" value="Build Projet"/>
                </ui:define>
            </ui:composition>
        </h:body>
    </html>
    Merci d'avance pour toute l'aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 59
    Points : 42
    Points
    42
    Par défaut Property 'onAjoutProjetButton' not found on type
    Salut,

    tu peux m'expliquer pourquoi tu renvoi un String dans ta methode onAjoutProjetButton?

    tu utilise quelle version de jsf?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Java Débutant
    Inscrit en
    Juin 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java Débutant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    bonjour makroute,
    1°/
    le "NavigationCases.AJOUT_PROJET" me permet d'afficher la facelet où je vais faire la saisie du nouveau projet.
    En gros, j'ai une classe java où je liste les cas de navigation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import org.springframework.stereotype.Component;
     
    @Component
    public class NavigationCases {
        public static final String LISTE_PROJETS = "listeProjets";
        public static final String AJOUT_PROJET = "gestionProjet";
        public static final String LOG_TAZA = "logTaza";
     
        public static final String MODE_AJOUT = "mode_ajout";
        public static final String MODE_EDITION = "mode_edition";
        public static final String MODE_SUPPRESSION = "mode_suppression";
    }
    et le faces-config.xml où je définis tous les cas de navigation :

    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
     
    <?xml version='1.0' encoding='UTF-8'?>
    <faces-config xmlns="http://java.sun.com/xml/ns/javaee"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    	http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"
                  version="2.1">
     
        <application>
            <el-resolver>
                org.springframework.web.jsf.el.SpringBeanFacesELResolver
            </el-resolver>
        </application>
     
        <!-- Navigation -->
        <navigation-rule>
            <from-view-id>/*</from-view-id>
            <navigation-case>
                <from-outcome>listeProjets</from-outcome>
                <to-view-id>/projet/listeProjets.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>gestionProjet</from-outcome>
                <to-view-id>/projet/gestionProjet.xhtml</to-view-id>
            </navigation-case>
            <navigation-case>
                <from-outcome>logTaza</from-outcome>
                <to-view-id>/projet/logTaza.xhtml</to-view-id>
            </navigation-case>
        </navigation-rule>
           
    </faces-config>
    tu aura plus de précisions dans la FAQ

    2°/
    J'utilise JSF2 et PrimeFaces3.5.

    Si non, j'ai résolut mon problème, j'avais mis provisoirement en commentaire une bar de bouton mais impossible de mettre en commentaire un EL (c'est çà #{...}), donc je l'ai supprimé.

Discussions similaires

  1. Property 'valeur.desc' not found on type
    Par Rony Rauzduel dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 31/07/2014, 10h03
  2. Réponses: 2
    Dernier message: 15/08/2012, 17h06
  3. Property not found on type
    Par barmic dans le forum JSF
    Réponses: 11
    Dernier message: 10/12/2010, 13h53
  4. Property 'firstResult' not found
    Par CinePhil dans le forum Persistance des données
    Réponses: 1
    Dernier message: 25/11/2010, 17h09
  5. Réponses: 1
    Dernier message: 22/01/2009, 18h36

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