基于MyEclipse8.6开发Spring3.0_Hibernate3.3_Struts2.2整合笔记一

基于MyEclipse8.6开发Spring3.0+Hibernate3.3+Struts2.2整合笔记一基于MyEclipse8.6开发Spring3.0+Hibernate3.3+Struts2.2整合笔记一

创建项目增加对应的包如下图:

dao 保存Dao,biz保存业务,bean保存hibernate生成的配置相关,action保存struts2的action
添加spring支持

添加struts2支持

添加Hibernate支持

修改web.xml配置添加spring监听器


<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> 添加openSession过滤器
<filter> <filter-name>openSession</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>openSession</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
增加以前我写的的haha.hibernate.jar包及相关commons-lang-2.5.jar和commons-beanutils-1.8.3.jar

增加Hibernate影射文件

编写UserDao.java文件
package com.haha.dao;import https://www.360docs.net/doc/f012969444.html,ers;import com.haha.hibernate.HibernateDao;public class UserDao extends HibernateDao<Users, Integer> {}编写UserBiz.java文件
package https://www.360docs.net/doc/f012969444.html,;import java.util.List;import https://www.360docs.net/doc/f012969444.html,ers;import https://www.360docs.net/doc/f012969444.html,erDao;public class UserBiz { private UserDao userDao; public void setUserDao(UserDao userDao) { https://www.360docs.net/doc/f012969444.html,erDao = userDao; } public List<Users> findAll(){ return userDao.getAll(); } public void addUsers(Users u){ try { userDao.save(u); } catch (Exception e) { e.printStackTrace(); } } public void deleteUser(int id){ try { userDao.delete(id); } catch (Exception e) { e.printStackTrace(); } }}编写UserAction.java
package com.haha.action;import java.util.List;import https://www.360docs.net/doc/f012969444.html,ers;import https://www.360docs.net/doc/f012969444.html,erBiz;public class UserAction { private UserBiz userBiz; public void setUserBiz(UserBiz userBiz) { https://www.360docs.net/doc/f012969444.html,erBiz = userBiz; } private List<Users> users; public List<Users> getUsers() { return users; } public String execute(){ users=userBiz.findAll(); return "success"; }}
编写spring配置文件
添加命名空间

添加事务管理配置
<bean id="tm" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <tx:advice id="txadvice" transaction-manager="tm"> <tx:attributes> <tx:method name="find*" read-only="true"/> <tx:method name="get*" read-only="true"/> <tx:method name="add*" propagation="REQUIRED"/>

<tx:method name="update*" propagation="REQUIRED"/> <tx:method name="del*" propagation="REQUIRED"/> <tx:method name="save*" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut expression="execution(* https://www.360docs.net/doc/f012969444.html,.*.*(..))" id="aoppoint"/> <aop:advisor advice-ref="txadvice" pointcut-ref="aoppoint"/> </aop:config>添加ado,biz,action配置
<bean id="userDao" class="https://www.360docs.net/doc/f012969444.html,erDao" > <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </bean> <bean id="userBiz" class="https://www.360docs.net/doc/f012969444.html,erBiz" > <property name="userDao"> <ref bean="userDao"/> </property> </bean> <bean id="userAction" class="https://www.360docs.net/doc/f012969444.html,erAction"> <property name="userBiz"> <ref bean="userBiz"/> </property> </bean>添加user.jsp并进行struts2配置
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "https://www.360docs.net/doc/f012969444.html,/dtds/struts-2.1.dtd"><struts> <package name="haha" namespace="/" extends="struts-default"> <action name="user" class="userAction"> <result>/user.jsp</result> </action> </package></struts> user.jsp内容如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>用户列表</title> </head> <body> <table border="1"> <tr> <th>编号</th> <th>姓名</th> <th>角色</th> </tr> <s:iterator value="users" var="u"> <tr> <td>${u.id}</td> <td>${https://www.360docs.net/doc/f012969444.html,}</td> <td>${https://www.360docs.net/doc/f012969444.html,}</td> </tr> </s:iterator> </table> </body></html>注意这里用了外键对象,需要修改配置文件中的延迟加载设置

发布项目,需要删除两个jar包(antlr-2.7.2.jar和cglib-2.2.jar),否则会报异常
启动服务大功搞成!


相关文档
最新文档