我正在尝试使用EJB的JSF示例。当我尝试添加到购物车按钮时,我收到以下错误:“目标无法访问,标识符'nesne'已解析为null”。
我的豆类:
@ManagedBean(name="nesne")
@SessionScoped
public class JSFYonetimliNesne implements Serializable {
private static final long serialVersionUID = 1L;
@EJB
AlisverisSepetiEJB alisverisSepeti;
Urun urun = new Urun();
List<Urun> urunler;
public List<Urun> getUrunler() {
return alisverisSepeti.getUrunler();
}
public void setUrunler(List<Urun> urunler) {
this.urunler = urunler;
}
public Urun getUrun() {
return urun;
}
public void setUrun(Urun urun) {
this.urun = urun;
}
public void sepeteKoy(){
alisverisSepeti.urunEkle(urun);
urun = new Urun();
}
}
我的Urun POJO类有两个变量:
public class Urun {
private String urunAdi;
private Long fiyat;
private Long gramaj;
public String getUrunAdi() {
return urunAdi;
}
public void setUrunAdi(String urunAdi) {
this.urunAdi = urunAdi;
}
public Long getFiyat() {
return fiyat;
}
public void setFiyat(Long fiyat) {
this.fiyat = fiyat;
}
public Long getGramaj() {
return gramaj;
}
public void setGramaj(Long gramaj) {
this.gramaj = gramaj;
}
}
对于'添加到购物车'的方法,我使用了这个外观:
@Stateful
public class AlisverisSepetiEJB {
private List<Urun> urunler = new ArrayList<Urun>();
public List<Urun> getUrunler() {
return urunler;
}
public void setUrunler(List<Urun> urunler) {
this.urunler = urunler;
}
public void urunEkle(Urun urun){
urunler.add(urun);
}
}
我的xhtml文件:
<ui:define name="body">
<h:head>Alışveriş Sepeti</h:head>
Alışveriş Sepeti
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="Ürün Adı : " />
<h:inputText value="#{nesne.urun.urunAdi}" />
<h:outputText value="Ürün Fiyatı : " />
<h:inputText value="#{nesne.urun.fiyat}" />
<h:outputText value="Ürün Gramajı : " />
<h:inputText value="#{nesne.urun.gramaj}" />
</h:panelGrid>
<h:commandButton value="Sepete Ekle" action="#{nesne.sepeteKoy}" /><br></br>
<h:outputLabel value="Sepetteki Ürünler" /><br></br>
<h:dataTable value="#{jSFYonetimliNesne.urunler}" var="item" border="2">
<h:column>
<f:facet name="header">
<h:outputLabel value="Ürün Adı" />
</f:facet>
<h:outputText value="#{item.urunAdi}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="Ürün Fiyatı" />
</f:facet>
<h:outputText value="#{item.fiyat}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="Ürün Gramajı" />
</f:facet>
<h:outputText value="#{item.gramaj}" />
</h:column>
</h:dataTable>
</h:form>
</ui:define>
单击“sepete ekle”按钮会产生上述错误。