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

Java EE Discussion :

Erreur "entity for parameter binding cannot be null"


Sujet :

Java EE

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut Erreur "entity for parameter binding cannot be null"
    Bonjour,

    l'ereur qu'eclipse a donné est:
    20 mai 2012 10:43:41 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: "Servlet.service()" pour la servlet Faces Servlet a généré une exception
    java.lang.IllegalArgumentException: entity for parameter binding cannot be null
    at org.hibernate.internal.AbstractQueryImpl.resolveEntityName(AbstractQueryImpl.java:587)
    at org.hibernate.internal.AbstractQueryImpl.setEntity(AbstractQueryImpl.java:645)
    at com.PhaseHome.findByMission(PhaseHome.java:135)
    at beans.MissionBean.getPhases(MissionBean.java:57)
    at beans.MissionBean.<init>(MissionBean.java:42)

    le code de manager.jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <h:outputLabel value="Missions:"></h:outputLabel><br>
                <h:selectOneMenu value="#{missionBean.description}" onchange="submit()" valueChangeListener="#{missionBean.changeMission}" immediate="true" >
                <f:selectItems value="#{missionBean.missions}"/>
                </h:selectOneMenu>
                <h:outputLabel value="Phases:"></h:outputLabel><br>
                <h:selectOneMenu value="#{missionBean.numero}"  >
                <f:selectItems value="#{missionBean.phases}"/>
                </h:selectOneMenu>
    ici il s'agit de 2 selectItems :un select des missions missionBean.missions et un select des phases a partir d'une mission
    voici les lignes d'erreur:
    dans PhaseHome.java:
    Query query = session.createQuery("from Phase p where p.mission= :miss");
    query.setEntity("miss", m);
    dans MissionBean.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
    private Mission m=null;
    public List<SelectItem> getPhases(){
        List<SelectItem> SI=new ArrayList<SelectItem>();
        List<Phase> l=new ArrayList<Phase>();
        PhaseHome ph= new PhaseHome();
        l=ph.findByMission(m);
        for(int i=0;i<l.size();i++)
        {
            SI.add(new SelectItem(l.get(i).getNumPhase()));
    
        }
        return SI;
                         
                  
    }
    //la methode changeMission :
    
    public void changeMission(ValueChangeEvent e){
    
        
        MissionHome mh=new MissionHome();
    
        String desc=e.getNewValue().toString();
        
        m= mh.findByDescription(desc) ; 
    }
    le probleme c'est dans la récupération de la mission m selectionnée dans le premier selectOneMenu afin de selectionner les phases de cette mission dans le deuxieme selectOneMenu puisque la mission m est une clé etrangère dans la table phase.
    svp aidez-moi dans ce probleme.
    Merci.

  2. #2
    Membre chevronné
    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
    Points : 2 112
    Points
    2 112
    Par défaut
    Salut,

    avec les selectItems et les selectOneMenu, il te faut un converter pour retrouver tes billes (instances d'objets)

    Regarde ce post que j'ai rédigé il y a qqs mois et qui devrait d'aider :
    http://www.developpez.net/forums/d11...ique-securise/

    A+

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fxrobin Voir le message
    Salut,

    avec les selectItems et les selectOneMenu, il te faut un converter pour retrouver tes billes (instances d'objets)

    Regarde ce post que j'ai rédigé il y a qqs mois et qui devrait d'aider :
    http://www.developpez.net/forums/d11...ique-securise/

    A+
    An effet, j'ai pas compris Converter qu'est ce qu'elle fait exactement? Merci de m'eclaircir là-dessus
    P.s: moi je travaille avec les technologies JSF + Hibernate

  4. #4
    Membre chevronné
    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
    Points : 2 112
    Points
    2 112
    Par défaut
    C'est en JSF.

    en gros c'est un "passe plat" (convertisseur) qui transforme des intances en une représentation "String" qui sera dans le HTML généré par JSF ... et ça fait donc l'opération inverse, à partir d'une représentation "String" ça retrouve une instance.

    Certains codent les converter directement en tapant en base pour retrouver les clés primaires qui serviront de lien, mais moi je n'aime pas trop que les clés primaires se balladent dans la vue, voilà pourquoi j'ai réalisé le converter générique.

    Dans tous les cas, regarde les Converter, tu en auras forcément besoin.

  5. #5
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    j'ai utilisé le converter mais toujour la meme erreur apparut , il ne réussit pas à trouver la clé etrangère Mission dans la requete HQL qu'on le recupere a partir du selectOneMenu
    en effet dans le premier selectOneMenu an a la description de la mission , aprés dans le deuxieme selectOneMenu on a les numeros des phases qu'on a dans cette mission qu'on a selectionné dans le premier SelectOneMenu

  6. #6
    Membre chevronné
    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
    Points : 2 112
    Points
    2 112
    Par défaut
    Avec le converter il faut que tu enlèves pas mal de choses de ton code : plus besoin d'aller récupérer l'instance avec sa clé primaire car le converter aura gardé l'instance ...

    la value du selectOneMenu doit pointer vers "m" directement et pas la description.

  7. #7
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fxrobin Voir le message
    Avec le converter il faut que tu enlèves pas mal de choses de ton code : plus besoin d'aller récupérer l'instance avec sa clé primaire car le converter aura gardé l'instance ...

    la value du selectOneMenu doit pointer vers "m" directement et pas la description.
    j'ai modifié mon code comme suit:
    dans la page JSP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <h:outputLabel value="Missions:"></h:outputLabel>
    			<h:selectOneMenu value="#{missionBean.mission}"   onchange="submit()"  valueChangeListener="#{missionBean.changeMission}" immediate="true" rendered="true">
    			<f:selectItems value="#{missionBean.missions}"/>
    			<f:converter converterId="missionConverter" />
    			</h:selectOneMenu><br>
    			Phases:
    			<h:selectOneMenu value="#{missionBean.phase}" rendered="true" >
    			<f:selectItems value="#{missionBean.phases}"/>
    			<f:converter converterId="phaseConverter" />
    			</h:selectOneMenu>
    le convertisseur missionConverter:
    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
    public class MissionConverter implements Converter, Serializable {
    	Mission mission=new Mission();
     
        private Map <UUID,Mission> temporaryStore = new HashMap <UUID, Mission> ();
     
     
        public Object getAsObject(FacesContext context, UIComponent component, String value) {
            return temporaryStore.get(UUID.fromString(value));
        }
     
     
        public String getAsString(FacesContext context, UIComponent component, Object value) {
            UUID idMission = UUID.randomUUID();
            temporaryStore.put(idMission,  (Mission) value);
            return idMission.toString();
        }}
    Le convertisseur phaseConverter:
    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
    public class PhaseConverter implements Converter, Serializable {
    	Phase phase=new Phase();
     
        private Map <UUID,Phase> temporaryStore = new HashMap <UUID, Phase> ();
     
     
        public Object getAsObject(FacesContext context, UIComponent component, String value) {
            return temporaryStore.get(UUID.fromString(value));
        }
     
     
        public String getAsString(FacesContext context, UIComponent component, Object value) {
            UUID idMission = UUID.randomUUID();
            temporaryStore.put(idMission,  (Phase) value);
            return idMission.toString();
        }}
    puis mon bean MissionBean:
    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
    public class MissionBean {
    	private Mission mission;
    	private List<SelectItem> missions = getMissions();
     
    	public List<SelectItem> getMissions() {
    		List<SelectItem> SI = new ArrayList<SelectItem>();
    		List<Mission> l = new ArrayList<Mission>();
    		MissionHome m = new MissionHome();
    		l = m.findAll();
    		for (int i = 0; i < l.size(); i++) {
    			SI.add(new SelectItem(l.get(i), l.get(i).getDescription()));
     
    		}
    		return SI;
     
    	}
     
    	private Phase phase;
    	private List<SelectItem> phases=getPhases();
    	private List<Phase> l ;
    	public void changeMission(ValueChangeEvent e) {
     
    		Mission m = (Mission) e.getNewValue();
    		System.out.println(m.getClient());
    		PhaseHome ph = new PhaseHome();
    		setL(ph.findByMission(m));
    		System.out.println(l.get(0));
     
    	}
     
     
    	  public List<Phase> getL() {
    		return l;
    	}
     
    	public void setL(List<Phase> l) {
    		this.l = l;
    	}
     
    	public List<SelectItem> getPhases(){ 
    		List<SelectItem> SI=new ArrayList<SelectItem>();
     
    	 if(l!=null) {for(int i=0;i<l.size();i++) { SI.add(new
    	 SelectItem(l.get(i).getNumPhase()));
     
    	  }}
    	 return SI;
     
    	  }
     
    //getters and setters
    }
    mais le warning qu'eclipse me donne est :
    INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
    sourceId=j_id_jsp_184366156_1:j_id_jsp_184366156_3[severity=(ERROR 2), summary=(j_id_jsp_184366156_1:j_id_jsp_184366156_3: Erreur de validation: Valeur not valid.), detail=(j_id_jsp_184366156_1:j_id_jsp_184366156_3: Erreur de validation: Valeur not valid.)]
    je sais pas d'où l'erreur provient
    P.s: le 2eme selectOneMenu des phases ne se remplit pas

  8. #8
    Membre chevronné
    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
    Points : 2 112
    Points
    2 112
    Par défaut
    ce n'est pas comme ça qu'il faut faire.

    tes Converter doivent aussi être des ManagedBean en scope View
    et ils doivent être désignés par l'attribut converter="#{phaseConverter}" sur ton h:selectOneMenu et pas avec le tag "f:converter".

    regarde mon post sur le GenericSecuredConverter

  9. #9
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fxrobin Voir le message
    ce n'est pas comme ça qu'il faut faire.

    tes Converter doivent aussi être des ManagedBean en scope View
    et ils doivent être désignés par l'attribut converter="#{phaseConverter}" sur ton h:selectOneMenu et pas avec le tag "f:converter".

    regarde mon post sur le GenericSecuredConverter
    est ce ue c'est nécessaire de travailler avec le scope view parceque moi je travaille avec JSF1.2 et le viewscoped c'est nouveau en JSF2.0

  10. #10
    Membre chevronné
    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
    Points : 2 112
    Points
    2 112
    Par défaut
    ah zut ... c'est du JSF 1.2

    en request, ça devrait fonctionner aussi ... j'ai pas essayé.

  11. #11
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fxrobin Voir le message
    ah zut ... c'est du JSF 1.2

    en request, ça devrait fonctionner aussi ... j'ai pas essayé.
    oui je l'ai fait mais le probleme c'est dans la conversion de mission:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    java.lang.ClassCastException: java.lang.String cannot be cast to com.Phase
    	at beans.PhaseConverter.getAsString(PhaseConverter.java:28)
    	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:451)
    	at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOption(MenuRenderer.java:481)
    	at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:740)
    en sachant que le code des convertisseurs est:

    missionConverter:
    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
    package beans;
     
    import java.io.Serializable;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.UUID;
     
    import javax.faces.component.UIComponent;
    import javax.faces.context.FacesContext;
    import javax.faces.convert.Converter;
     
    import com.Mission;
     
     
    public class MissionConverter implements Converter, Serializable {
    	Mission mission=new Mission();
     
        private Map <UUID,Mission> temporaryStore = new HashMap <UUID, Mission> ();
     
     
        public Object getAsObject(FacesContext context, UIComponent component, String value) {
            return temporaryStore.get(UUID.fromString(value));
        }
     
     
        public String getAsString(FacesContext context, UIComponent component, Object value) {
            UUID idMission = UUID.randomUUID();
            temporaryStore.put(idMission, (Mission)value);
            return idMission.toString();
        }
    et phaseConverter:

    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
    package beans;
     
    import java.io.Serializable;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.UUID;
     
    import javax.faces.component.UIComponent;
    import javax.faces.context.FacesContext;
    import javax.faces.convert.Converter;
     
    import com.Mission;
    import com.Phase;
     
    public class PhaseConverter implements Converter, Serializable {
    	Phase phase=new Phase();
     
        private Map <UUID,Phase> temporaryStore = new HashMap <UUID, Phase> ();
     
     
        public Object getAsObject(FacesContext context, UIComponent component, String value) {
            return temporaryStore.get(UUID.fromString(value));
        }
     
     
        public String getAsString(FacesContext context, UIComponent component, Object value) {
            UUID idMission = UUID.randomUUID();
            temporaryStore.put(idMission,  (Phase)value);
            return idMission.toString();
        }

    et le code JSF:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <h:outputLabel value="Missions:" ></h:outputLabel>
    			<h:selectOneMenu value="#{missionBean.mission}" onchange="submit()" valueChangeListener="#{missionBean.valueChange}" converter="#{missionConverter }" immediate="true"  >
    			<f:selectItems value="#{missionBean.missions}"/>
    	         <f:converter converterId="missionConverter"/>
     
    			</h:selectOneMenu><br>
    			<h:outputLabel value="Phases:" ></h:outputLabel>
    			<h:selectOneMenu value="#{missionBean.phase}" converter="#{phaseConverter }"  >
    			<f:selectItems value="#{missionBean.phases}"/>
     
    			</h:selectOneMenu>

    mais la conversion s'effectue pas

  12. #12
    Membre chevronné
    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
    Points : 2 112
    Points
    2 112
    Par défaut
    tu as laissé trainé un espace ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    converter="#{phaseConverter }"

    il faut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    converter="#{phaseConverter}"
    idem pour le missionConverter où tu as laissé trainé un espace

    et retire tout cela, car pas besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:converter converterId="missionConverter"/>

  13. #13
    Membre chevronné
    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
    Points : 2 112
    Points
    2 112
    Par défaut
    tu pourrais aussi mettre les chose à jour avec AJAX, pour du JSF 1.2 :

    http://stackoverflow.com/questions/2...hselectonemenu

  14. #14
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fxrobin Voir le message
    tu as laissé trainé un espace ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    converter="#{phaseConverter }"

    il faut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    converter="#{phaseConverter}"
    idem pour le missionConverter où tu as laissé trainé un espace

    et retire tout cela, car pas besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:converter converterId="missionConverter"/>
    oui j'ai corrigé les erreurs:

    le 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
    <h:outputLabel value="Missions:" ></h:outputLabel>
    			<h:selectOneMenu value="#{missionBean.mission}" onchange="submit()" valueChangeListener="#{missionBean.valueChange}" converter="#{missionConverter}" immediate="true"  >
    			<f:selectItems value="#{missionBean.missions}"/>
     
     
    			</h:selectOneMenu><br>
    			<h:outputLabel value="Phases:" ></h:outputLabel>
    			<h:selectOneMenu value="#{missionBean.phase}" converter="#{phaseConverter}"  >
    			<f:selectItems value="#{missionBean.phases}"/>
     
    			</h:selectOneMenu><br>
     
    			<br>
    les codes phaseConverter et missionConverter sont les memes

    mais l'erreur d'eclipse est dans missionConverter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    java.lang.NullPointerException
    	at beans.MissionConverter.getAsString(MissionConverter.java:28)
    	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue(HtmlBasicRenderer.java:451)
    	at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOption(MenuRenderer.java:481)
    	at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:740)
    	at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:801)

  15. #15
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    en effet je cherche a raffraichir le 2eme menu des phases a partir du premier menu des missions
    mon code jsf est:
    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
    <h:outputLabel value="Missions:" ></h:outputLabel>
    			<h:selectOneMenu value="#{missionBean.mission}" id="missionid" >
     
    			<f:converter converterId="missionConverter"/>
    			<a4j:support event="onchange" actionListener="#{missionBean.valueChange}" ajaxSingle="true" reRender="s2"></a4j:support>
    	         	<f:selectItems value="#{missionBean.missions}"/> 
     
    			</h:selectOneMenu><br>
    			<h:outputLabel value="Phases:" ></h:outputLabel>
    			<h:selectOneMenu value="#{missionBean.phase}" id="s2"   ><f:converter converterId="phaseConverter"/>
    			<f:selectItems value="#{missionBean.phases}"/>
     
    			</h:selectOneMenu><br>
     
    			<br>
    pour le f:converter ca marche
    le probleme c'est dans le listener actionListener puisque ça n'effectue aucun changement

  16. #16
    Membre chevronné
    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
    Points : 2 112
    Points
    2 112
    Par défaut
    j'avais pas fais attention, mais tes converter doivent être déclaré en tant que ManagedBean dans ton faces-config.xml.

    Donc je redis :
    1 - enlève le f:converter
    2 - déclarer les converter comme étant des ManagedBean dans ton fichier de conf
    3 - tu peux alors les appeler avec #{phaseConverter}


    tu es d'accord que si ce n'est pas un ManagedBeann, tu peux pas les appeler avec #{....}

  17. #17
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fxrobin Voir le message
    j'avais pas fais attention, mais tes converter doivent être déclaré en tant que ManagedBean dans ton faces-config.xml.

    Donc je redis :
    1 - enlève le f:converter
    2 - déclarer les converter comme étant des ManagedBean dans ton fichier de conf
    3 - tu peux alors les appeler avec #{phaseConverter}


    tu es d'accord que si ce n'est pas un ManagedBeann, tu peux pas les appeler avec #{....}
    ui bien sur , d'ailleurs tous les managedbeans doivent etre déclarés dans le faces-config mais malgré ça ac cette manière cad converter=#{phaseConverter} la conversion ça marche pas par contre en utilisant f:converter la conversion ça marche

  18. #18
    Membre chevronné
    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
    Points : 2 112
    Points
    2 112
    Par défaut
    montre ton faces-config.xml

    au pire j'essaierai de te faire un exemple complet ...
    mais je pense que je n'aurai pas le temps aujourd'hui.

  19. #19
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    comment récuperer la valeur selectionnée en utilisant a4j:support

  20. #20
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fxrobin Voir le message
    montre ton faces-config.xml

    au pire j'essaierai de te faire un exemple complet ...
    mais je pense que je n'aurai pas le temps aujourd'hui.
    voici mon faces-config:
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xi="http://www.w3.org/2001/XInclude"
     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_1_2.xsd">
     <converter>
      <converter-id>missionConverter</converter-id>
      <converter-class>beans.MissionConverter</converter-class>
     </converter>
     <converter>
      <converter-id>phaseConverter</converter-id>
      <converter-class>beans.PhaseConverter</converter-class>
     </converter>
     <managed-bean>
      <managed-bean-name>authentificationBean</managed-bean-name>
      <managed-bean-class>beans.AuthentificationBean</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
     </managed-bean>
     <managed-bean>
      <managed-bean-name>missionBean</managed-bean-name>
      <managed-bean-class>beans.MissionBean</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
     </managed-bean>
     <managed-bean>
      <managed-bean-name>missionConverter</managed-bean-name>
      <managed-bean-class>beans.MissionConverter</managed-bean-class>
      <managed-bean-scope>request</managed-bean-scope>
     </managed-bean>
     <managed-bean>
      <managed-bean-name>phaseConverter</managed-bean-name>
      <managed-bean-class>beans.PhaseConverter</managed-bean-class>
      <managed-bean-scope>request</managed-bean-scope>
     </managed-bean>
     <managed-bean>
      <managed-bean-name>phaseBean</managed-bean-name>
      <managed-bean-class>beans.PhaseBean</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
     </managed-bean>
     <navigation-rule>
      <from-view-id>/index.jsp</from-view-id>
      <navigation-case>
       <from-outcome>manager</from-outcome>
       <to-view-id>/manager.jsp</to-view-id>
      </navigation-case>
     </navigation-rule>
     <navigation-rule>
      <from-view-id>/index.jsp</from-view-id>
      <navigation-case>
       <from-outcome>consultant</from-outcome>
       <to-view-id>/consultant.jsp</to-view-id>
      </navigation-case>
     </navigation-rule>
     <navigation-rule>
      <from-view-id>/index.jsp</from-view-id>
      <navigation-case>
       <from-outcome>invalide</from-outcome>
       <to-view-id>/index.jsp</to-view-id>
      </navigation-case>
     </navigation-rule>
    </faces-config>

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/11/2006, 18h20
  2. Réponses: 3
    Dernier message: 13/01/2006, 11h00
  3. [Eclipse / Jonas] Erreur "jonas-entity missing for bean"
    Par citygirl dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 16/05/2005, 11h59
  4. []Erreur sur second emploi collection binding
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/03/2004, 18h02

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