我有一個簡單的XHTML頁面:如何將facelets綁定到CDI bean?
<h:form>
<p:dataTable var="customer" value="#{customersTableBackingBean.allCustomers}">
<p:column headerText="First Name">
<h:outputText value="#{customer.contactFirstName}" />
</p:column>
<p:column headerText="City">
<h:outputText value="#{customer.city}" />
</p:column>
</p:dataTable>
</h:form>
當我CustomersTableBackingBean.java如下:
@ManagedBean
@RequestScoped
public class CustomersTableBackingBean {
@EJB(name = "#{customersService}")
CustomersService customersService;
public List<Customers> getAllCustomers(){
return customersService.getAllCustomers();
}
public String sayHello(){
return "Hello from a managed bean!";
}
}
我看到從數據庫中讀取一些數據,上的index.xhtml預期。
然而,當我改變@ManagedBean註釋@Named和進口:javax.inject.Named沒有數據的index.xhtml。
這個結構有什麼問題?
如何使用CDI bean而不是JSF ManagedBean?
(我有一個beans.xml的文件,該文件是空的。)
順便說一句,我還保留@ResuestScoped註釋和導入:import javax.enterprise.context.RequestScoped; import javax.inject.Named; –
似乎你還沒有學到基本知識:停止在你的getter/setter中有業務邏輯。另請參閱[爲什麼JSF多次調用getters](http://stackoverflow.com/q/2090033/1065197) –