创建项目增加对应的包如下图:
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),否则会报异常
启动服务大功搞成!