Bonjour,
j'essais de rafraichir un selectOneMenu a partir d'un autre en utilisant un converter ,
mon code jsf :
mon code du converter:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <h:outputLabel value="Missions:" ></h:outputLabel> <h:selectOneMenu value="#{missionBean.mission}" id="missionid" 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.intitule}" id="s2" > <f:selectItems value="#{missionBean.phases}"/> </h:selectOneMenu><br>
mais l'erreur c'est lors du changement de la valeur selectionnée puisque dans la récuperation de la valeur pour rafrachir le second selectonemenu me donne ce warning et le second selectonemenu reste sans changement:
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 public class MissionConverter implements Converter, Serializable { public Object getAsObject(FacesContext context, UIComponent component, String value) { MissionHome m = new MissionHome(); List<Mission> missions=m.findAll();; for (Mission mission : missions) { if (mission.getDescription().equals(value)) { return mission; } } return null; } public String getAsString(FacesContext context, UIComponent component, Object value) { return ((Mission) value).getDescription(); } }
l'erreur est:
et pour recuperer la valeur la methode valueChange est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part sourceId=j_id_jsp_1003224163_1:missionid[severity=(ERROR 2), summary=(j_id_jsp_1003224163_1:missionid: Erreur de validation: Valeur not valid.), detail=(j_id_jsp_1003224163_1:missionid: Erreur de validation: Valeur not valid.)]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public void valueChange(ValueChangeEvent e){ PhaseHome ph=new PhaseHome(); Mission m=(Mission)e.getNewValue(); System.out.println(m.getDescription());//ça marche pas, cette valeur ne se récupere pas setL(ph.findByMission(m)); }
Partager