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 :

Récupération de la valeur sélectionnée échoue


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Par défaut Récupération de la valeur sélectionnée échoue
    Bonjour,

    Je travaille avec PrimeFaces et je suis en train de préparer mon PFE.

    Mon problème est dans la récupération de la valeur sélectionnée dans le composant <p:selectOneMenu>.

    Voici mon code contenant la partie de sélection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <h:form>
     <h:outputLabel value="Etat"/>
                             <p:selectOneMenu value="#{gestionRbMBean.etatR}">
                                <f:selectItem itemLabel="Select One" itemValue="" /> 
                                <f:selectItem itemLabel="Attente" itemValue="attente"/>
                                <f:selectItem itemLabel="Accepté" itemValue="accepte"/>
                                <f:selectItem itemLabel="Refusé" itemValue="refuse"/>                    
                            </p:selectOneMenu>
                            <p:spacer height="15px"/>
                            <p:spacer height="15px"/>
                             <p:commandButton action="liste remboursement.xhtml?faces-redirect=true" value="Chercher" />
                            <p:commandButton value="Annuler" />
                             </h:form>
    Quelqu'un saurait-il m'expliquer d'où vient le problème ?

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    peux tu montrer ton ManagedBean ?

  3. #3
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Par défaut
    Voilà mon MangedBean:
    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
     
    package beans;
    import javax.inject.Named;
    import java.io.Serializable;
    import java.util.Date;
    import java.util.List;
     
    import entities.Remboursement;
    import javax.ejb.EJB;
    import javax.faces.bean.SessionScoped;
    import metier.GestionRemboursement;
     
    @Named(value="gestionRbMBean")
    @SessionScoped
    public class GestionRbMBean implements Serializable {
     
        private String etatR;
     
       @EJB
        private GestionRemboursement rembBean;
     
     
     
     
        public GestionRbMBean() {    }
     
     
     
        public void setEtatR(String etat) {
            this.etatR = etat;
        }
     
     
     
     
        public String getEtatR() {
            return etatR;
        }
     
     
     
     
     
     
         public List<Remboursement>  affiche() {  
            return rembBean.getAllRemboursement(etatR);  
        }  
     
     
     
    }
    MERCI

  4. #4
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    @Named est une annotation CDI de JEE6.
    or le @SessionScoped que tu utilises doit être utilisée avec @ManagedBean de JSF ...

    il faut faire attention à ne pas mixer les 2 "technologies".

    http://stackoverflow.com/questions/6...om-managedbean

    à ta place j'utiliserais @ManagedBean

  5. #5
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 25
    Par défaut
    Merci pour votre réponse mais j'ai un autre problème:
    quand je veux charger une liste de <selectOneMenu> à partir de la base et suite à un choix d'attribut que je le selectionne dans ensemble de boutton de <selectOneRadio> j'obtient cet erreur:
    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
     
    java.lang.NullPointerException
    	at managedBeans.GestionRMBean.role(GestionRMBean.java:54)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:779)
    	at javax.el.BeanELResolver.invoke(BeanELResolver.java:528)
    	at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:257)
    	at com.sun.el.parser.AstValue.getValue(AstValue.java:134)
    	at com.sun.el.parser.AstValue.getValue(AstValue.java:183)
    	at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224)
    	at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
    	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
    	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
    	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
    	at javax.faces.component.UISelectItems.getValue(UISelectItems.java:129)
    	at org.primefaces.renderkit.InputRenderer.getSelectItems(InputRenderer.java:47)
    	at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeMarkup(SelectOneMenuRenderer.java:59)
    	at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeEnd(SelectOneMenuRenderer.java:53)
    	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
    	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
    	at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)
    	at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)
    	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
    	at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:60)
    	at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:48)
    	at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:184)
    	at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:107)
    	at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:55)
    	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764)
    	at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
    	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1757)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
    	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402)
    	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
    	at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
    	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
    	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
    	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
    	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
    	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
    	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
    	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
    	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    	at java.lang.Thread.run(Thread.java:619)
    Ma page xhtml est la suivante:
    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
    <h:form>
                       <p:panel header="Gestion des remboursements">
                            <h:panelGrid columns="2" > 
                            <f:facet name="header">Recherche</f:facet>
     
                            <h:outputText value="Type: " />  
                            <p:selectOneRadio id="options" value="#{gestionRMBean.type}" >  
                                <f:selectItem itemLabel="Professionnel" itemValue="professionnel" />  
                                <f:selectItem itemLabel="Centre" itemValue="centre" />  
                            </p:selectOneRadio>
                             <p:spacer height="15px"/>
                            <p:spacer height="15px"/>
                            <h:outputLabel value="Adhérant:"/>
                            <p:selectOneMenu value="#{gestionRMBean.libelle}">
                                <f:selectItem itemLabel="Select One" itemValue="" />
                                <f:selectItems value="#{gestionRMBean.role()}" var="res" 
                                               itemLabel="#{res.idS.libelleS}" itemValue="#{res.idS.libelleS}" /> 
     
                            </p:selectOneMenu>
                            <p:spacer height="15px"/>
                            <p:spacer height="15px"/>
                            <h:outputLabel value="Etat"/>
                             <p:selectOneMenu value="#{gestionRMBean.etat}">
                                <f:selectItem itemLabel="Select One" itemValue="" /> 
                                <f:selectItem itemLabel="Attente" itemValue="attente"/>
                                <f:selectItem itemLabel="Accepté" itemValue="accepte"/>
                                <f:selectItem itemLabel="Refusé" itemValue="refuse"/>                    
                            </p:selectOneMenu>
                            <p:spacer height="15px"/>
                            <p:spacer height="15px"/>
                             <p:commandButton action="affiche.xhtml?faces-redirect=true" value="Chercher" />
                            <p:commandButton value="Annuler" />
                            </h:panelGrid>
     
                        </p:panel>
                    </h:form>
    Le managedBean est le suivant:
    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
     
    public class GestionRMBean {
        @EJB
        private GestionRemboursement gestionRemboursement;
        private String etat;
        private String type;
        private String libelle;
     
        public String getLibelle() {
            return libelle;
        }
     
        public void setLibelle(String libelle) {
            this.libelle = libelle;
        }
     
        public String getType() {
            return type;
        }
     
        public void setType(String type) {
            this.type = type;
        }
     
        public String getEtat() {
            return etat;
        }
     
        public void setEtat(String etat) {
            this.etat = etat;
        }
     
        public GestionRMBean() {
        }
     
        public List<Remboursement> afficheEtat(){
          return gestionRemboursement.getRemboursementEtat(etat);
        }
         public List role(){
     
             if(type.equals("professionnel"))
             {
               return gestionRemboursement.getAllProfessionnel();
             }
             else if(type.equals("centre"))
             {
                return gestionRemboursement.getAllCentre();
             }
             else return null;
         }
    }
    Merci d'avance pour votre aide

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Quelle est la ligne 54 de GestionRMBean ?

    A première vue, tu as un élément Null dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public List role(){
     
             if(type.equals("professionnel"))
             {
               return gestionRemboursement.getAllProfessionnel();
             }
             else if(type.equals("centre"))
             {
                return gestionRemboursement.getAllCentre();
             }
             else return null;
         }
    Si type peut être NULL il vaut mieux faire "professionnel".equals(type) et encore mieux passer par des constantes, voir des enum si le nombre de possibilité est bien défini.

    Sinon gestionRemboursement peut être NULL si ton injection d'EJB ne fonctionne pas.

  7. #7
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    d'ailleurs la variable de l'injection de l'EJB est private, alors que tu n'as pas de getters / setters : l'injection, c'est sûr, ne fonctionne pas.

    C'est donc bien là le problème, je suis d'accord avec Mathieu.J

Discussions similaires

  1. Récupération de la valeur sélectionnée d'une table déroulante
    Par grrd dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/09/2013, 11h17
  2. Réponses: 3
    Dernier message: 02/02/2013, 11h45
  3. Réponses: 3
    Dernier message: 24/01/2011, 12h01
  4. Réponses: 4
    Dernier message: 07/12/2010, 10h42
  5. Réponses: 11
    Dernier message: 29/11/2010, 16h44

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