早上好,
我的“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 天开始就尝试解决这个问题......对不起,感谢您的帮助!祝你有美好的一天
塞巴斯蒂安