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

来源:互联网 发布:金山卫士网络速度 编辑:程序博客网 时间:2024/05/17 22:05

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

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 com.haha.bean.Users;import com.haha.hibernate.HibernateDao;public class UserDao extends HibernateDao<Users, Integer> {}

编写UserBiz.java文件

package com.haha.biz;import java.util.List;import com.haha.bean.Users;import com.haha.dao.UserDao;public class UserBiz {private UserDao userDao;public void setUserDao(UserDao userDao) {this.userDao = 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 com.haha.bean.Users;import com.haha.biz.UserBiz;public class UserAction {private UserBiz userBiz;public void setUserBiz(UserBiz userBiz) {this.userBiz = 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(* com.haha.biz.*.*(..))" id="aoppoint"/><aop:advisor advice-ref="txadvice" pointcut-ref="aoppoint"/></aop:config>

添加ado,biz,action配置

<bean id="userDao" class="com.haha.dao.UserDao" ><property name="sessionFactory"><ref bean="sessionFactory"/></property></bean><bean id="userBiz" class="com.haha.biz.UserBiz" ><property name="userDao"><ref bean="userDao"/></property></bean><bean id="userAction" class="com.haha.action.UserAction"><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" "http://struts.apache.org/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>${u.name}</td>    <td>${u.userRoles.name}</td>    </tr>    </s:iterator>    </table>  </body></html>

注意这里用了外键对象,需要修改配置文件中的延迟加载设置

发布项目,需要删除两个jar包(antlr-2.7.2.jar和cglib-2.2.jar),否则会报异常


启动服务大功搞成!