2013-10-10 98 views
0

我OM正與用途Primefaces的dataTable有過濾搜索一個應用程序,但我得到以下異常:javax.el.PropertyNotFoundException與Primefaces和DataTable

SEVERE: Error Rendering View[/list.xhtml] javax.el.PropertyNotFoundException: The class 'cc.crm.model.Kunde' does not have the property 'kunde'. 

當我輸入搜索框的東西。

這是我的XHTML:

<h:body id="body"> 
    <h:form> 
     <p:dataTable filteredValue="#{sessionCtrl.filteredKunde}" scrollable="false" id="tabel" var="kunde" value="#{sessionCtrl.kunder}" widgetVar="kundetable" emptyMessage="Der er ikke nogle kunder som passer til søgningen"> 

      <f:facet name="header"> 
       <p:outputPanel> 
        <h:outputText value="Søg i kunder:" /> 
        <h:inputText id="globalFilter" onkeyup="PF('kundetable').filter()" /> 
       </p:outputPanel> 
      </f:facet> 
      <p:column id="admcol" filterBy="kunde.abm" filterMatchMode="contains"> 
       <f:facet name="header"> 
        Adm 
       </f:facet> 
       #{kunde.abm} 
      </p:column>    

      <p:column id="forbrugaftraepillercol" filterBy="kunde.traepiller" filterMatchMode="contains"> 
       <f:facet name="header"> 
        Forbrug af træpiller 
       </f:facet> 
       #{kunde.traepiller} 
      </p:column> 
      <p:column id="vejcol" filterBy="kunde.vej" filterMatchMode="contains"> 
       <f:facet name="header"> 
        Vej 
       </f:facet> 
       #{kunde.vej} 
      </p:column> 
      <p:column id="vejnummercol" filterBy="kunde.vejNr" filterMatchMode="contains"> 
       <f:facet name="header"> 
        Vej nummer 
       </f:facet> 
       #{kunde.vejNr} 
      </p:column> 

      <f:facet name="footer"> 
       Der er i alt #{sessionCtrl.antalKunder} kunder. 
      </f:facet> 

     </p:dataTable> 
    </h:form> 

我已經deletet一些。

這裏是我的會話中:

@Named @RequestScoped public class SessionCtrl implements Serializable{ 

private List<Kunde> filteredKunde; 

@Inject 
DatabaseCtrl dbCtrl; 

public List<Konslulent> getKonsulenter() { 
    return dbCtrl.getAlleKunsulenter(); 
} 

public List<Kunde> getKunder() { 
    return dbCtrl.getAlleKunder(); 
} 

public int getAntalKunder(){ 
    return dbCtrl.getAlleKunder().size(); 
} 

    public List<Kunde> getFilteredKunde() { 
     System.out.println("getFilteredKunde() : " + filteredKunde) ; 
    return filteredKunde; 
} 

public void setFilteredKunde(List<Kunde> filteredKunde) { 
    System.out.println("setFilteredKunde(List<Kunde> filteredKunde) : " + filteredKunde); 
    this.filteredKunde = filteredKunde; 
} 

昆德POJO:

@Entity public class Kunde implements Serializable { 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private long id; 

private String firmaNavn; 

private String vej; 
private String vejNr; 
private int postNr; 
private String byy; 
private String att; 
private String titel; 
private String mail; 
private int mobil; 
private int telefon; 
private int cvrNr; 
private int gas; 
private int olie; 
private int el; 
private int traepiller; 
private String andetEnergi; 
private String kundeType; 
private String abm; 
private int timer; 
private String andetKundeforhold; 
private String note; 
@OneToOne 
private Konslulent konsulent; 


public long getId() { 
    return id; 
} 
public void setId(int id) { 
    this.id = id; 
} 
public String getFirmaNavn() { 
    return firmaNavn; 
} 
public void setFirmaNavn(String firmaNavn) { 
    this.firmaNavn = firmaNavn; 
} 
public String getVej() { 
    return vej; 
} 
public void setVej(String vej) { 
    this.vej = vej; 
} 
public String getVejNr() { 
    return vejNr; 
} 
public void setVejNr(String vejNr) { 
    this.vejNr = vejNr; 
} 
public int getPostNr() { 
    return postNr; 
} 
public void setPostNr(int postNr) { 
    this.postNr = postNr; 
} 
public String getBy() { 
    return byy; 
} 
public void setBy(String by) { 
    this.byy = by; 
} 
public String getAtt() { 
    return att; 
} 
public void setAtt(String att) { 
    this.att = att; 
} 
public String getTitel() { 
    return titel; 
} 
public void setTitel(String titel) { 
    this.titel = titel; 
} 
public String getMail() { 
    return mail; 
} 
public void setMail(String mail) { 
    this.mail = mail; 
} 
public int getMobil() { 
    return mobil; 
} 
public void setMobil(int mobil) { 
    this.mobil = mobil; 
} 
public int getTelefon() { 
    return telefon; 
} 
public void setTelefon(int telefon) { 
    this.telefon = telefon; 
} 
public int getCvrNr() { 
    return cvrNr; 
} 
public void setCvrNr(int cvrNr) { 
    this.cvrNr = cvrNr; 
} 
public int getGas() { 
    return gas; 
} 
public void setGas(int gas) { 
    this.gas = gas; 
} 
public int getOlie() { 
    return olie; 
} 
public void setOlie(int olie) { 
    this.olie = olie; 
} 
public int getEl() { 
    return el; 
} 
public void setEl(int el) { 
    this.el = el; 
} 
public int getTraepiller() { 
    return traepiller; 
} 
public void setTraepiller(int traepiller) { 
    this.traepiller = traepiller; 
} 
public String getAndetEnergi() { 
    return andetEnergi; 
} 
public void setAndetEnergi(String andetEnergi) { 
    this.andetEnergi = andetEnergi; 
} 
public String getKundeType() { 
    return kundeType; 
} 
public void setKundeType(String kundeType) { 
    this.kundeType = kundeType; 
} 
public String getAbm() { 
    return abm; 
} 
public void setAbm(String abm) { 
    this.abm = abm; 
} 
public int getTimer() { 
    return timer; 
} 
public void setTimer(int timer) { 
    this.timer = timer; 
} 
public String getAndetKundeforhold() { 
    return andetKundeforhold; 
} 
public void setAndetKundeforhold(String andetKundeforhold) { 
    this.andetKundeforhold = andetKundeforhold; 
} 
public String getNote() { 
    return note; 
} 
public void setNote(String note) { 
    this.note = note; 
} 
public Konslulent getKonsulent() { 
    return konsulent; 
} 
public void setKonsulent(Konslulent konsulent) { 
    this.konsulent = konsulent; 
} 
+0

你必須提供一個EL表達式到'filterBy'屬性。使用與表值相​​同的值。 –

+0

你使用的是什麼primefaces版本? – Daniel

+0

我正在使用Primefaces 4.0。 –

回答

2

filterBy應該filterBy = #{kunde.abm}

+0

我用filterBy =「#{kunde.adm}」替換了kunde.adm,但我仍然得到相同的異常。 –

+0

我確實發現問題列表filteredKunde未初始化。 –