This question already has answers here:
Identifying and solving javax.el.PropertyNotFoundException: Target Unreachable
(16个回答)
5年前关闭。
我在尝试使用对象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:
这是我的页面代码:
问候
您也可以改为在
选择最适合功能/业务需求的任何东西。
(16个回答)
5年前关闭。
我在尝试使用对象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>
问候
最佳答案
javax.el.PropertyNotFoundException:/infoprojet.xhtml @ 493,159 value =“#{acteurObjetProjetBean.currentActeurObjetProjet.objets.nomObjet}”“:无法到达目标,“objets”返回null
EL试图告诉您它不能设置nomObjet
值,因为objets
是null
。 EL不会为您自动创建任何嵌套对象属性。它只会自动填充leaf属性。您只需要确保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());
}
选择最适合功能/业务需求的任何东西。
10-04 14:53