配置文件:
<bean id="HibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>                               <bean id="user" class="com.action.UserAction">
<property name="dao" ref="dao"></property>
</bean>
<bean id="test" class="com.action.TestAction">
<property name="dao" ref="dao"></property>
</bean>
<bean id="pro" class="com.action.ProAction">
<property name="dao" ref="dao"></property>
</bean>
<bean id="dao" class="com.dao.UserDao">
<property name="hibernateTemplate" ref="HibernateTemplate"></property>
</bean>
   <bean id="transctionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
 <property name="sessionFactory" ref="sessionFactory"></property>
 </bean>
   <tx:annotation-driven transaction-manager="transctionManager"/>
出错UserDao:
Product p1=(Product)this.getHibernateTemplate().load(Product.class, ids);
this.getHibernateTemplate 为空
action:
public class TestAction extends ActionSupport {
private UserDao dao;
private String proDesc;
private String proName;
public UserDao getDao() {
return dao;
}
public void setDao(UserDao dao) {
this.dao = dao;
}
public String getProDesc() {
return proDesc;
}
public void setProDesc(String proDesc) {
this.proDesc = proDesc;
}
public String getProName() {
return proName;
}
public void setProName(String proName) {
this.proName = proName;
}
public String list()throws Exception{
HttpServletResponse response = ServletActionContext.getResponse(); 
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
HttpServletRequest request = ServletActionContext.getRequest();
List list=dao.productList();
int count=dao.getCount();
System.out.println("count"+count);
request.setAttribute("list", list);
return "list";
}
public String deletePro() throws Exception{
   HttpServletResponse response = ServletActionContext.getResponse(); 
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
   HttpServletRequest request = ServletActionContext.getRequest();
   UserDao dao=new UserDao();
   String id=request.getParameter("id");
   System.out.println(id+"ids");
   dao.deletePro(id);
   out.println("<script>alert('success')</script>");
 
   return null;
   }
}

解决方案 »

  1.   

    显然是是HibernateTemplate没有实例化成功,显示一下数据源的配置。
      

  2.   

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://172.168.3.166:3306/lxy"></property>
    <property name="username" value="root"></property>
    <property name="password" value="011735"></property>
    <property name="initialSize" value="50"></property>
    <property name="maxActive" value="100"></property>
    <property name="maxIdle" value="10"></property>
    <property name="maxWait" value="10"></property>
    </bean><bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <property name="mappingResources">
    <list>
    <value>com/vo/User.hbm.xml</value>
    <value>com/vo/Product.hbm.xml</value>
    </list>
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
    <prop key="hibernate.batch_size">15</prop>
    </props>
    </property>
    </bean>
      

  3.   

    你定义个dao模板然后dao的实现引用这个模板就行了
    如这样,你定义
    <bean id="daoTemplate" abstract="true" lazy-init="true">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <bean id="userDao"
    class="com.dao.UserDao"
    parent="daoTemplate" />
    这个去掉
    <bean id="HibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>   其次你注意你的申明顺序。
          
      

  4.   

    HibernateTemplate这个是需要注入sessionFactory的,你有没有注入进去呀。