Bonjour à tous,
j'ai la liste déroulante suivante :
1 2 3
| <h:selectOneMenu id="resp" value="#{tacheBean.tache.responsable}" converter="utilisateurConverter">
<f:selectItems value="#{utilisateurBean.selectItemListUsers}" />
</h:selectOneMenu> |
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 :
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;
} |
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 :
<h:selectOneMenu id="resp" value="#{tacheBean.tache.responsable}" converter="utilisateurConverter">
Malheureusement j'ai l'erreur suivante :
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 :
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();
}
} |
J'ai besoin de vous pour ma fonction getAsObject, je ne sais pas du tout comment convertir en Objet Utilisateur.
Merci d'avance pour votre aide.
Partager