2011-09-06 41 views
3

我遇到的问题,而试图使用对象currentActeurObjetProjet和使用Primefaces显示其在对话框的属性,但它不断出现这样的错误:
目标不可到达,返回null

ATTENTION: /infoprojet.xhtml @493,159 value="#{acteurObjetProjetBean.currentActeurObjetProjet.objets.nomObjet}": Target Unreachable, 'objets' returned null javax.el.PropertyNotFoundException: /infoprojet.xhtml @493,159 value="#{acteurObjetProjetBean.currentActeurObjetProjet.objets.nomObjet}": Target Unreachable, 'objets' returned null

这里是备份豆:

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> 

方面小号

+1

它可能是你缺少一些getter/setter或你的对象(属性)没有正确初始化。你确定'objets'已经正确初始化并且在'ActeurObjetProjet'中有getter/setter。 –

回答

11

javax.el.PropertyNotFoundException: /infoprojet.xhtml @493,159 value="#{acteurObjetProjetBean.currentActeurObjetProjet.objets.nomObjet}": Target Unreachable, 'objets' returned null

EL是想告诉你,它不能设置nomObjet值,因为objetsnull。 EL不会为你自动创建任何嵌套的对象属性。它只会自动填充leaf属性。你只需要确保currentActeurObjetProject类的objet属性不是null。你可以通过例如ActeurObjetProjet类的构造函数进行准备。

public ActeurObjetProjet() { 
    this.objet = new Objet(); 
} 

您也可以在ActeurObjetProjetBean的构造函数中做到这一点。

private ActeurObjetProjet currentActeurObjetProject; 

public ActeurObjetProjetBean() { 
    this.currentActeurObjetProject = new ActeurObjetProjet(); 
    this.currentActeurObjetProject.setObject(new Object()); 
} 

选择适合功能/业务需求最好的。

+0

它的工作感谢你的时间很多 – cascadox

+0

不客气。 – BalusC

相关问题