我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;
}
你必須提供一個EL表達式到'filterBy'屬性。使用與表值相同的值。 –
你使用的是什麼primefaces版本? – Daniel
我正在使用Primefaces 4.0。 –