Bonjour,
j'essais de rafraichir un selectOneMenu a partir d'un autre en utilisant un converter ,
mon code jsf :
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> |
mon code du converter:
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();
}
} |
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:
l'erreur est:
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.)]
et pour recuperer la valeur la methode valueChange est:
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