XhtmlページをマネージドBeanに接続する際に問題があり、commandButtonのアクションは機能しますが、値の受け渡しに関しては機能しません。これが私のjsfコードです:
<h:form id="form" class="form-signin">
<p:panel id="panel" header=" Authentification" style="" >
<h:panelGrid columns="2" rowClasses="3">
<h:outputLabel for="login" value="Nom d'utilisateur :" styleClass=""/>
<p:inputText id="login" value=" #{authenticationBean.profil.login }" required="true" label="login" >
<f:validateLength minimum="4" />
</p:inputText>
<h:outputLabel for="password" value="Mot de passe :" />
<p:password id="password" value=" #{authenticationBean.profil.password }" required="true" label="password" styleClass=""/>
<p:row>
<p:commandButton id="loginButton" value="Login" ajax="false" action="#{authenticationBean.validate}" />
<h:messages id="messages" globalOnly="false"/>
</p:row>
</h:panelGrid>
</p:panel>
</h:form>
morphiaを使用してデータをmongodbにマップしています。また、profilと呼ばれるエンティティと、認証を管理するための1つのBeanがあります。これが私のathenticationbeanコードです:
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
これが私のプロファイルエンティティコードです:
@Entity("profils")
public class Profil {
@Id protected ObjectId _id;
protected String nomProfil,prenomProfil,login,password;
@Embedded protected List<Droit> droits;
@Reference protected Admin admin;
public Profil() {
}
//getters and setters ...
これは、データを送信して送信ボタンをクリックしたときに取得するエラーです。
javax.el.PropertyNotWritableException: /index.xhtml @29,125 value=" #{authenticationBean.profil.login }": Illegal Syntax for Set Operation
値を詳しく見て、すべての正気のJSFチュートリアル/例が示しているものと比較してください。
value=" #{authenticationBean.profil.login }"
空白は、属性とEL式で重要です。それを取り除く:
value="#{authenticationBean.profil.login}"