2012-11-14 52 views
0

我想用PrimeFaces,Spring和Hibernate來開發我的應用程序,並且我拿這個例子,但它確實有效。 我不知道如何配置applicationContext.xml,web.xml,faces-config.xml,我不知道我是否錯過了jar。PrimeFaces 3.4.1 Spring 3.2.0RC Hibernate 4.0.1

我有這樣的錯誤:

javax.el.PropertyNotFoundException:/index.xhtml @ 14,50 值= 「#{} customer.lists」:房產名單「上 類型未發現comtic.scrum.managedBean.CustomerBean

我使用Tomcat 7和JBoss開發工作室,primeFaces 3.4.1,彈簧3.2.0.RC1,hibernate-release-4.0.1.Final

我的表是客戶(customerId,name,地址) S,createdDate)列

這個

罐子的WEB-INF/lib目錄列表:

  1. ANTLR-2.7.7.jar
  2. 共annotations.jar
  3. 公地的BeanUtils的.jar
  4. 的commons-collections.jar
  5. 公地集合-3.2.1.jar
  6. 公地digester.jar
  7. 的commons-logging.jar
  8. 的dom4j-1.6.1.jar
  9. 休眠公地的註解 - 4.0.1.Final.jar
  10. 休眠核心-4.0.1.Final.jar
  11. 休眠-JPA-2.0-API-1.0.1.Final.jar
  12. 了Javassist-3.15.0-GA.jar
  13. 的jboss-測井3.1.0.CR2.jar
  14. JBoss的事務-api_1 .1_spec-1.0.0.Final.jar
  15. jsf-api-2.1.6的.jar
  16. JSF的參數impl-2.1.6.jar
  17. jslt.jar
  18. MySQL的連接器的Java-5.0.8-bin.jar
  19. primefaces-3.4.1.jar
  20. 彈簧-aop-3.2.0.RC1.jar
  21. 彈簧方面,3.2.0.RC1.jar
  22. 彈簧豆-3.2.0.RC1.jar
  23. 彈簧上下文3.2.0.RC1 .jar
  24. spring-context-support-3.2.0.RC1.jar
  25. 彈簧芯3.2.0.RC1.jar
  26. 彈簧表達-3.2.0.RC1.jar
  27. 彈簧儀器3.2.0.RC1.jar
  28. 彈簧儀器的Tomcat -3.2.0.RC1.jar
  29. spring-jdbc-3.2.0.RC1。罐子
  30. 彈簧JMS-3.2.0.RC1.jar
  31. 彈簧ORM-3.2.0.RC1.jar
  32. 彈簧OXM-3.2.0.RC1.jar
  33. 彈簧struts- 3.2.0.RC1.jar
  34. 彈簧體檢查3.2.0.RC1.jar
  35. 彈簧-TX-3.2.0.RC1.jar
  36. 彈簧網絡3.2.0.RC1.jar
  37. spring-webmvc-3.2.0.RC1.jar
  38. spring-webmvc-portlet-3.2.0.RC1.ja ř
  39. standard.jar

這是Customer.java

import java.util.Date; 

/** 
* Customer generated by hbm2java 
*/ 
public class Customer implements java.io.Serializable { 

    private Integer customerId; 
    private String name; 
    private String address; 
    private Date createdDate; 

    public Customer() { 
    } 

    public Customer(String name, String address, Date createdDate) { 
     this.name = name; 
     this.address = address; 
     this.createdDate = createdDate; 
    } 

    public Integer getCustomerId() { 
     return this.customerId; 
    } 

    public void setCustomerId(Integer customerId) { 
     this.customerId = customerId; 
    } 

    public String getName() { 
     return this.name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getAddress() { 
     return this.address; 
    } 

    public void setAddress(String address) { 
     this.address = address; 
    } 

    public Date getCreatedDate() { 
     return this.createdDate; 
    } 

    public void setCreatedDate(Date createdDate) { 
     this.createdDate = createdDate; 
    } 

} 

CustomerDAO.java:

import java.util.List; 

import comtic.scrum.customer.model.Customer; 

public interface CustomerDao{ 

    void addCustomer(Customer customer); 

    List<Customer> findAllCustomer(); 

} 

CustomerDaoImp.java

import java.util.Date; 
import java.util.List; 

import comtic.scrum.customer.dao.CustomerDao; 
import comtic.scrum.customer.model.Customer; 
import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 

public class CustomerDaoImpl extends 
     HibernateDaoSupport implements CustomerDao{ 

    public void addCustomer(Customer customer){ 

     customer.setCreatedDate(new Date()); 
     getHibernateTemplate().save(customer); 

    } 

    public List<Customer> findAllCustomer(){ 

     return getHibernateTemplate().find("from Customer"); 

    } 
} 

CustomerService.java

import java.util.List; 

import comtic.scrum.customer.model.Customer; 

public interface CustomerService { 
    void addCustomer(Customer customer); 

    List<Customer> findAllCustomer(); 

} 

CustomerServiceImp.java

import java.util.List; 

import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 

import comtic.scrum.customer.dao.CustomerDao; 
import comtic.scrum.customer.model.Customer; 
import comtic.scrum.customer.service.CustomerService; 

public class CustomerServiceImp extends 
HibernateDaoSupport implements CustomerService { 

    CustomerDao customerDao; 

    public CustomerDao getCustomerDao() { 
     return customerDao; 
    } 

    public void setCustomerDao(CustomerDao customerDao) { 
     this.customerDao = customerDao; 
    } 

    public void addCustomer(Customer customer){ 

     customerDao.addCustomer(customer); 

    } 

    public List<Customer> findAllCustomer(){ 

     return customerDao.findAllCustomer(); 
    } 

} 

CustomerBean.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 


    <bean id="customerService" 
     class="comtic.scrum.customer.service.imp.CustomerServiceImp" > 
     <property name="customerDao" ref="customerDao" /> 
    </bean> 

    <bean id="customerDao" 
     class="comtic.scrum.customer.dao.imp.CustomerDaoImp" > 
     <property name="sessionFactory" ref="sessionFactory"> 
     </property> 

    </bean> 

</beans> 

CustomerBean.java

import java.io.Serializable; 
import java.util.ArrayList; 
import java.util.Date; 
import java.util.Iterator; 
import java.util.List; 

import comtic.scrum.customer.model.Customer; 
import comtic.scrum.customer.service.CustomerService; 

public class CustomerBean implements Serializable { 
    //DI via Spring 
     CustomerService customerService; 

     public String name; 
     public String address; 

     public String getName() { 
      return name; 
     } 

     public void setName(String name) { 
      this.name = name; 
     } 

     public String getAddress() { 
      return address; 
     } 

     public void setAddress(String address) { 
      this.address = address; 
     } 



     //get all customer data from database 
     public List<Customer> customerList(){ 
      return customerService.findAllCustomer(); 
     } 

     //add a new customer data into database 
     public String addCustomer(){ 

      Customer cust = new Customer(); 
      cust.setName(getName()); 
      cust.setAddress(getAddress()); 

      customerService.addCustomer(cust); 

      clearForm(); 

      return ""; 
     } 

     //clear form values 
     private void clearForm(){ 
      setName(""); 
      setAddress(""); 
     } 

     public comtic.scrum.customer.service.CustomerService getCustomerService() { 
     return customerService; 
    } 

     public void setCustomerService(
      comtic.scrum.customer.service.CustomerService customerService) { 
     this.customerService = customerService; 
    } 


} 

DataSource.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 

<bean 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location"> 
    <value>WEB-INF/classes/config/database/db.properties</value> 
    </property> 
</bean> 

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="${jdbc.driverClassName}" /> 
    <property name="url" value="${jdbc.url}" /> 
    <property name="username" value="${jdbc.username}" /> 
    <property name="password" value="${jdbc.password}" /> 
    </bean> 

</beans> 

HibernateSessionFactory.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 


    <!-- Hibernate session factory --> 
<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 

    <property name="dataSource"> 
     <ref bean="dataSource" /> 
    </property> 

    <property name="mappingResources"> 
    <list> 
      <value>comtic/scrum/customer/hibernate/Customer.hbm.xml</value> 
    </list> 
    </property> 

    <property name="hibernateProperties"> 
     <props> 
     <prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop> 
     <prop key="hibernate.show_sql">true</prop> 
     </props> 
    </property>  

</bean> 
</beans> 

faces-config.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xi="http://www.w3.org/2001/XInclude" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> 

<managed-bean> 
    <managed-bean-name>customer</managed-bean-name> 
    <managed-bean-class>comtic.scrum.managedBean.CustomerBean</managed-bean-class> 
    <managed-bean-scope>session</managed-bean-scope> 
    <managed-property> 
    <property-name>customerService</property-name> 
    <property-class>comtic.scrum.customer.service.CustomerService</property-class> 
    <value/> 
    </managed-property> 
</managed-bean> 

<application> 
    <resource-bundle> 
    <base-name>resources</base-name> 
    <var>msgs</var> 
    </resource-bundle> 
</application> 
</faces-config> 

的web.xml

<?xml version="1.0"?> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
<display-name>Template</display-name> 
<!-- Spring Context Configuration' s Path definition --> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/applicationContext.xml</param-value> 
</context-param> 
<!-- Project Stage Level --> 
<context-param> 
    <param-name>javax.faces.PROJECT_STAGE</param-name> 
    <param-value>Development</param-value> 
</context-param> 
<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.jsf</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.faces</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/faces/*</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
    <welcome-file>index.xhtml</welcome-file> 
</welcome-file-list> 
</web-app> 

的index.xhtml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core"  
     xmlns:pf="http://primefaces.org/ui"> 

<h:head> 

</h:head> 
<h:body> 
    <h1>PrimeFaces + Spring + Hibernate Example</h1> 
    <pf:dataTable value="#{customer.lists}" var="c"> 
     <h:column> 
      <h:outputText value="customerId"/> 
     </h:column> 
     <h:column> 
      <h:outputText value="#{c.name}"/> 
     </h:column> 
     <h:column> 
      <h:outputText value="#{c.address}"/> 
     </h:column> 
     <h:column> 
      <h:outputText value="#{c.createdDate}"/> 
     </h:column>  
    </pf:dataTable> 

    <h2>Add New Customer</h2> 
    <h:form> 
     <pf:panelGrid columns="3" > 
      Name :    
        <pf:inputText id="name" label="Name" required="true" size="20" value="#{customer.name}">       
        </pf:inputText>     
       <h:message for="name" style="color:red" /> 

       Address :    
        <pf:inputTextarea cols="30" id="address" label="Address" required="true" rows="10" value="#{customer.address}">      
        </pf:inputTextarea> 
       <h:message for="address" style="color:red" />    
      <pf:button outcome="#{customer.addCustomer}" value="Submit"> 

      </pf:button> 
     </pf:panelGrid> 
    </h:form> 
</h:body> 
</html> 

感謝的

回答

1

是所有的春/休眠/ XML真的必要的代碼來演示該問題?當只有一個XHTML文件和一個沒有Spring/Hibernate/XML噪聲的託管bean類時,你會遇到完全相同的問題。學會將問題分爲1或2頁。你的問題是近10頁長...

無論如何,你得

javax.el.PropertyNotFoundException例外:/index.xhtml @ 14,50值=「#{客戶。名單}「:房產名單」上的類型comtic.scrum.managedBean.CustomerBean

只是想告訴你,CustomerBean類缺少getter方法getLists()沒有發現添加它並確保它返回。一個List<Customer>

public List<Customer> getLists() { 
    return lists; 
} 

無關到具體問題,在屬性名的複數s是奇怪的方式。它只返回一個列表,對吧?如果我是你,我會用getList()獲得者將它重命名爲#{customer.list}

+0

謝謝我在index.html中改變 hy2020

+0

這是一個完全不同的問題。如果您不瞭解新問題並按自己的意思解決問題,請按右上方的「Ask Question」按鈕。目前的問題已經消失,因此得到解答。 – BalusC

相關問題