Good Morning,
I have a problem with my "selectOneMenu: I try to have a list of users from a database...in a first time, the list of logins of users is good in the selectOnemenu...but when i choice a login, i have this error: "formulaire_listeUtilisateurs:username: Validation Error: Value is not valid "
My selectOneMenu code:
<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>
My bean managed code:
@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";
}
}
My converter code:
@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;
}
}
}
I try with this problem since 4 days...Sorry and thanks for your help ! Have a good day
Sébastien