Pages

problème récupération objet selectOneMenu sujet

vendredi 31 janvier 2014




Bonjour à tous,

j'ai la liste déroulante suivante :


Code:


<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 :


Code:


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 :


Code:


<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 :


Code:


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.




Aucun commentaire:

Enregistrer un commentaire