1

早上好,

我的“selectOneMenu:我尝试从数据库中获取用户列表……第一次,selectOnemenu 中的用户登录列表很好……但是当我选择登录时,我有这个错误:“formulaire_listeUtilisateurs:用户名:验证错误:值无效”

我的 selectOneMenu 代码:

<h:selectOneMenu id="username"
                    value="#{utilisateursManager.utilisateurSelectionne}" converter="#{utilisateurConverter}" validator="utilisateurValidator">
                    <f:selectItem itemLabel="#{msg['index.selectionne']}" />
                    <f:selectItems value="#{utilisateursManager.donneUtilisateurs}"
                        var="utilisateur" itemLabel="#{utilisateur.login}" itemValue="#{utilisateur}" />
                </h:selectOneMenu>

我的 bean 托管代码:

@ManagedBean(name="utilisateursManager")
@SessionScoped

public class UserManagedbean implements Serializable {

private static final long serialVersionUID = 1L;
/**
 * Injection de nos EJB (Session Bean Stateless)
 */
@EJB
private UtilisateurDao dao;

// List<Information> pays;
private List<Utilisateur> listeUtilisateurs;
private Utilisateur utilisateurSelectionne;

public List<Utilisateur> getListeUtilisateurs() {

    return listeUtilisateurs;
}
public void setlisteUtilisateurs(List<Utilisateur> liste) {
    this.listeUtilisateurs = liste;
}

public Utilisateur getUtilisateurSelectionne() {
    return utilisateurSelectionne;
}
public void setUtilisateurSelectionne(Utilisateur utilisateur) {
    this.utilisateurSelectionne = utilisateur;
}

//remplissage de la liste derroulante
public List<Utilisateur> getDonneUtilisateurs(){

System.out.println("Fonction getDonneUtilisateurs");        
    listeUtilisateurs = dao.trouver();
//      this.utilisateurSelectionne = (Utilisateur) listeUtilisateurs.get(1);
    return listeUtilisateurs;
}

//remplissage de la liste derroulante
public String verifierMotDePasse(){

    return "acceuil.xhtml";
}

}

我的转换器代码:

@ManagedBean
@SessionScoped
public class UtilisateurConverter implements Converter, Serializable {


private static final long serialVersionUID = 1L;    

@Override
public Object getAsObject(FacesContext context, UIComponent component,
        String value) {

    UserManagedbean bean = (UserManagedbean) HttpSession)context.getExternalContext().getSession(true)).getAttribute("utilisateursManager");
    List<Utilisateur> userList = bean.getDonneUtilisateurs();
    for(int i=0; i<userList.size(); i++) {
        Utilisateur user = userList.get(i);
        if(user.getLogin().equals(value)) {
System.out.println("DANSCONVERTEROBJECT trouve user:" + user.getLogin());
            return user;
        }
    }
    return null;

}

@Override
public String getAsString(FacesContext context, UIComponent component,
        Object value) {

System.out.println("DANSCONVERTERSTRING");
    if (value==null){
System.out.println("DANSCONVERTERSTRING value=null, return null:");
        return null;
    } else {
    Utilisateur user = (Utilisateur) value;
    return user.getLogin() != null ? user.getLogin() : null;
    }
}

}

我从 4 天开始就尝试解决这个问题......对不起,感谢您的帮助!祝你有美好的一天

塞巴斯蒂安

4

0 回答 0