我在尝试使用对象currentActeurObjetProjet时遇到问题,并在使用Primefaces的对话框中显示其属性,但它一直显示此错误:
注意:/infoprojet.xhtml @ 493,159 value =“#{acteurObjetProjetBean.currentActeurObjetProjet.objets.nomObjet}”:目标无法访问,'objets'返回null javax.el.PropertyNotFoundException:/infoprojet.xhtml @ 493,159 value =“#{acteurObjetProjetBean.currentActeurObjetProjet.objets.nomObjet}”:目标无法访问,'objets'返回null
这是备份bean:
package com.mycompany.projet;
.......
/**
*
* @author Omar
*/
@Component("etatsBean")
@Scope("session")
public class ActeurObjetProjetBean implements Serializable{
.......
private ActeurObjetProjet currentActeurObjetProjet=new ActeurObjetProjet();
.......
////////////////////////////////////////////////////////// Méthodes & fonctions\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
////////////////////////////////////////////////////////// setters & getters \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
public void setCurrentActeurObjetProjet(ActeurObjetProjet currentActeurObjetProjet)
{
this.currentActeurObjetProjet=currentActeurObjetProjet;
}
public ActeurObjetProjet getCurrentActeurObjetProjet()
{
return currentActeurObjetProjet;
}
.......
}
这是我的页面代码:
<p:dialog header="Editer Objet" widgetVar="editobjetDialog" resizable="true" width="300" height="300" showEffect="clip" hideEffect="clip" modal="true">
<p:outputPanel id="editobjetDetail" style="text-align:center;" layout="block">
<center>
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel value="Nom Objet "/>
<p:inputText value="#{acteurObjetProjetBean.currentActeurObjetProjet.objets.nomObjet}" style="width: 180px"/>
<h:outputLabel value="Accès DB2 "/>
<p:inputText value="#{acteurObjetProjetBean.currentActeurObjetProjet.objets.accesDb2}" style="width: 180px"/>
<h:outputLabel value="Etat "/>
<p:inputText value="#{acteurObjetProjetBean.currentActeurObjetProjet.objets.etatObjet}" style="width: 180px"/>
<h:outputLabel value="Version "/>
<p:inputText value="#{acteurObjetProjetBean.currentActeurObjetProjet.objets.versionObjet}" style="width: 180px"/>
</h:panelGrid>
</center>
</p:outputPanel>
</p:dialog>
此致
答案 0 :(得分:11)
javax.el.PropertyNotFoundException:/infoprojet.xhtml @ 493,159 value =“#{acteurObjetProjetBean.currentActeurObjetProjet.objets.nomObjet}”:目标无法访问,'objets'返回null
EL试图告诉您它无法设置nomObjet
值,因为objets
为null
。 EL不会为您自动创建任何嵌套对象属性。它只会自动填充叶属性。您只需确保objet
类的currentActeurObjetProject
属性不是null
。您可以通过在ActeurObjetProjet
类的构造函数中准备它来实现这一点。
public ActeurObjetProjet() {
this.objet = new Objet();
}
您也可以在ActeurObjetProjetBean
的构造函数中执行此操作。
private ActeurObjetProjet currentActeurObjetProject;
public ActeurObjetProjetBean() {
this.currentActeurObjetProject = new ActeurObjetProjet();
this.currentActeurObjetProject.setObject(new Object());
}
选择最适合功能/业务要求的任何内容。