15 votes

Syntaxe illégale pour l'opération de définir

J'ai un problème pour connecter ma page xhtml au bean géré, l'action sur le commandButton fonctionne mais quand il s'agit de passer des valeurs cela ne fonctionne pas. Voici mon code jsf :

J'utilise Morphia pour mapper les données vers MongoDB, j'ai également une entité appelée profil et un bean pour gérer l'authentification. Voici le code de mon bean d'authentification :

public class AuthenticationBean implements Serializable {
private static final long serialVersionUID = 1L;
private Profil profil;
private ProfilDAO profileDao = DAOFactory.getProfilDAO();

public void validate() {
    FacesMessage message = new FacesMessage("Succès de l'inscription !");
    FacesContext.getCurrentInstance().addMessage(null, message);

}
// getters and setters 

Voici le code de mon entité profil :

@Entity("profils")
public class Profil {
@Id protected ObjectId _id;
protected String nomProfil, prenomProfil, login, password;
@Embedded protected List droits;
@Reference protected Admin admin;
public Profil() {
}
//getters and setters ...

Voici l'erreur que j'obtiens lorsque je soumets des données et clique sur le bouton soumettre :

javax.el.PropertyNotWritableException: /index.xhtml @29,125 value=" #{authenticationBean.profil.login }": Syntaxe incorrecte pour l'opération de définition

24voto

BalusC Points 498232

Regardez de plus près la valeur et comparez avec ce que tous les tutoriels/exemples sains de JSF essaient de vous montrer:

value=" #{authenticationBean.profil.login }"

L'espace blanc est significatif dans les attributs et les expressions EL. Débarrassez-vous en:

value="#{authenticationBean.profil.login}"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X