我正在使用EJB / JPA / JSF学习Web / J2EE,因此我遵循了NetBeans 7.3 / Glassfish 3.1.2的简单教程。
所以我只是创建了一个新的Java企业应用程序,来自示例数据库(Customer)的实体类,一个会话bean CustomerManager,以及一个JSFManagedBean和一个JSF页面的Web项目。
在我的JSF页面的主体中,我在<h1>Clients list</h1>
之后添加了一个JSF数据表来自实体(使用NetBeans调色板)。这是我的问题:“客户列表”后页面上没有打印数据。但是当我进入服务&gt;数据库&gt;样本时,我完全看到所有条目。
我不知道出了什么问题......谢谢你的帮助。
编辑:这是我的代码。
在EJB中,CustomerManager.java:
@Stateless
@LocalBean
public class CustomerManager {
@PersistenceContext(unitName = "CustomerApplication-ejbPU")
private EntityManager em;
public List<Customer> getAllCustomers() {
Query q = em.createNamedQuery("Customer.findAll");
return q.getResultList();
}
public Customer update(Customer c) {
return em.merge(c);
}
public void persist(Object o) {
em.persist(o);
}
}
Web:这是我的代码。 CustomerMBean:
@ManagedBean
@ViewScoped
public class CustomerMBean {
private List<Customer> customerList;
@EJB
private CustomerManager manager;
public CustomerMBean() {
}
public List<Customer> getAllCustomers() {
return manager.getAllCustomers();
}
public String showDetails(int idCustomer) {
return "CustomerDetails?idCustomer=" + idCustomer;
}
}
我的CustomerList页面:
<h:body>
<h1>Liste des clients</h1>
<f:view>
<h:form>
<h1><h:outputText value="List"/></h1>
<h:dataTable value="#{customerMBean.allCustomers}" var="item">
<h:column>
<f:facet name="header">
<h:outputText value="CustomerId"/>
</f:facet>
<h:outputText value="#{item.customerId}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Name"/>
</f:facet>
<h:outputText value="#{item.name}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Addressline1"/>
</f:facet>
<h:outputText value="#{item.addressline1}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Addressline2"/>
</f:facet>
<h:outputText value="#{item.addressline2}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="City"/>
</f:facet>
<h:outputText value="#{item.city}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="State"/>
</f:facet>
<h:outputText value="#{item.state}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Phone"/>
</f:facet>
<h:outputText value="#{item.phone}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Fax"/>
</f:facet>
<h:outputText value="#{item.fax}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Email"/>
</f:facet>
<h:outputText value="#{item.email}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="CreditLimit"/>
</f:facet>
<h:outputText value="#{item.creditLimit}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Zip"/>
</f:facet>
<h:outputText value="#{item.zip}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="DiscountCode"/>
</f:facet>
<h:outputText value="#{item.discountCode}"/>
</h:column>
</h:dataTable>
</h:form>
</f:view>
</h:body>
答案 0 :(得分:-1)
试试这个可能对你有所帮助。
<h:dataTable value="#{customerMBean.customerList}" var="item">
取代
<h:dataTable value="#{customerMBean.allCustomers}" var="item">
对于Balacus
<h:dataTable value="#{employeeMBean.customerList}" var="item">
和ManageBean是
@ManagedBean
@ViewScoped
public class CustomerMBean {
private List<Customer> customerList;
@EJB
private CustomerManager manager;
public CustomerMBean() {
}
@PostConstruct
public void getAllCustomers() {
customerList= manager.findAll();
}
//setter getter for customer list
}