Bonjour à tous,
j'ai la liste déroulante suivante :
J'alimente ma liste déroulante par la fonction suivante qui me retourne une liste d'Item clé/valeur de la forme Utilisateur/Nom Prenom :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <h:selectOneMenu id="resp" value="#{tacheBean.tache.responsable}" converter="utilisateurConverter"> <f:selectItems value="#{utilisateurBean.selectItemListUsers}" /> </h:selectOneMenu>
Je voudrai pouvoir récupérer l'objet sélectionné dans ma liste pour le stocker directement dans l'objet "responsable" qui est aussi de type Utilisateur, comme je l'indique dans mon code JSF :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public List<SelectItem> getSelectItemListUsers() { List<SelectItem> listItems = new ArrayList<SelectItem>(); if (usersList == null) { usersList = this.userEjb.listeUtilisateur(); for(Utilisateur user : usersList) { listItems.add(new SelectItem(user, user.getNom()+" "+user.getPrenom())); } } return listItems; }
Malheureusement j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <h:selectOneMenu id="resp" value="#{tacheBean.tache.responsable}" converter="utilisateurConverter">
Erreur de conversion lors de la définition de la valeur «entity.Utilisateur@137cf19» pour «null Converter».
Après de nombreuses recherches sur internet, il faudrait apparemment que je crée un converter.
J'ai donc la classe suivante :
J'ai besoin de vous pour ma fonction getAsObject, je ne sais pas du tout comment convertir en Objet Utilisateur.
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 package converter; import entity.Utilisateur; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.FacesConverter; @FacesConverter("utilisateurConverter") public class UtilisateurConverter implements Converter { @Override public Object getAsObject(FacesContext context, UIComponent component, String value) { return null; } @Override public String getAsString(FacesContext context, UIComponent component, Object value) { Utilisateur u = (Utilisateur) value; return u.getNom()+ " "+u.getPrenom(); } }
Merci d'avance pour votre aide.
Partager