您的位置:首页 > 编程语言 > Java开发

Struts2.3.4+Hibernate3.6+Spring3.0.5框架整合(新手看看)

2014-03-04 17:01 405 查看
工欲善其事,必先利其器,相关的下载就不多说,数据库是MySql5.1

新建一个WEB工程,将如下的包导入工程的WEB-INF/lib目录下,



导入包的说明:struts2.3.4中因为使用c3p0连接数据库所以导入了c3p0.jar,其它的就是struts2.3.4的基本的包的导入,上图中的slf4j-nop-1.6.1.jar导不导入影响不大,然后导入Hibernate的核心包,以及Spring中dist目录下的所有包,去掉重复的包,保留较高的版本, 如果你想使用struts2,Hibernate以及Spring的更多的功能,请导入相关的包。

下面是web.xml文件的配置

web.xml

1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
3   <display-name>SSHFramework</display-name>
4
5   <!-- 加载Spring的配置文件 -->
6   <context-param>
7       <param-name>contextConfigLocation</param-name>
8       <param-value>/WEB-INF/config/applicationContext.xml</param-value>
9   </context-param>
10   <!-- 加载spring的监听器 -->
11   <listener>
12     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
13   </listener>
14
15   <!-- struts2的配置 -->
16   <filter>
17       <filter-name>struts2</filter-name>
18       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
19       <init-param>
20           <param-name>config</param-name>
21           <param-value>struts-default.xml,struts-plugin.xml,../config/struts.xml</param-value>
22       </init-param>
23   </filter>
24   <filter-mapping>
25       <filter-name>struts2</filter-name>
26       <url-pattern>/*</url-pattern>
27   </filter-mapping>
28   <welcome-file-list>
29     <welcome-file>index.jsp</welcome-file>
30   </welcome-file-list>
31 </web-app>


接着是spring的配置文件applicationContext.xml

1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4        xsi:schemaLocation="http://www.springframework.org/schema/beans
5                           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 6
7
8     <!-- 定义数据源 ,使用c3p0数据源实现-->
9     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
10         <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
11         <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property>
12         <property name="user" value="root"></property>
13         <property name="password" value="123456"></property>
14     </bean>
15     <!-- Hibernate sessionFactory创建 -->
16     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
17         <property name="dataSource" ref="dataSource"></property>
18         <!-- Hibernate属性 -->
19         <property name="hibernateProperties">
20             <props>
21                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
22                 <prop key="hibernate.format_sql">true</prop>
23                 <prop key="hibernate.hbm2ddl.auto">create</prop>
24             </props>
25         </property>
26         <!-- 映射文件 -->
27         <property name="mappingResources">
28             <list>
29                 <!-- 统一到WEB-INF/config下管理配置文件 -->
30                 <value>../config/User.hbm.xml</value>
31             </list>
32         </property>
33     </bean>
34     <bean id="userDao" class="cn.zj.qiao.spring.dao.userimpl.UserDaoImpl" scope="prototype">
35         <property name="sessionFactory" ref="sessionFactory"></property>
36     </bean>
37     <bean id="registerAction" class="cn.zj.qiao.actions.RegisterAction" scope="prototype">
38         <property name="ud" ref="userDao"></property>
39     </bean>
40 </beans>


Hibernate的映射文件User.hbm.xml

1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE hibernate-mapping  PUBLIC
3                              "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4                              "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
5 <hibernate-mapping>
6     <class name="cn.zj.qiao.entity.vo.User" table="user_table">
7         <id name="id" column="uid">
8             <generator class="identity"></generator>
9         </id>
10         <property name="uname"></property>
11         <property name="upass"></property>
12     </class>
13 </hibernate-mapping>


strusts.xml文件

1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE struts PUBLIC
3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
4     "http://struts.apache.org/dtds/struts-2.3.dtd">
5 <struts>
6     <package name="default" namespace="/" extends="struts-default">
7         <action name="register" class="registerAction">
8             <result name="success">/success.jsp</result>
9             <result name="error">/error.jsp</result>
10         </action>
11     </package>
12 </struts>


用户注册Action:RegisterAction

1 package cn.zj.qiao.actions;
2
3 import cn.zj.qiao.entity.vo.User;
4 import cn.zj.qiao.interfaces.UserDao;
5
6 import com.opensymphony.xwork2.Action;
7
8
9 public class RegisterAction implements Action{
10     private String uname;
11     private String upass;
12     private UserDao ud;
13
14     public UserDao getUd(){
15         return ud;
16     }
17
18     public void setUd(UserDao ud){
19         this.ud = ud;
20     }
21
22     public String getUname() {
23         return uname;
24     }
25
26
27     public void setUname(String uname) {
28         this.uname = uname;
29     }
30
31
32     public String getUpass() {
33         return upass;
34     }
35
36
37     public void setUpass(String upass) {
38         this.upass = upass;
39     }
40
41
42     @Override
43     public String execute() throws Exception {
44         User user = new User();
45         user.setUname(uname);
46         user.setUpass(upass);
47         ud.addUser(user);
48         return SUCCESS;
49     }
50
51 }


用户Bean:User

1 package cn.zj.qiao.entity.vo;
2 public class User {
3
4     private Long id;
5     private String uname;
6     private String upass;
7
8     public User() {
9         super();
10     }
11     public User(Long id, String uname, String upass) {
12         super();
13         this.id = id;
14         this.uname = uname;
15         this.upass = upass;
16     }
17     public Long getId() {
18         return id;
19     }
20     public void setId(Long id) {
21         this.id = id;
22     }
23     public String getUname() {
24         return uname;
25     }
26     public void setUname(String uname) {
27         this.uname = uname;
28     }
29     public String getUpass() {
30         return upass;
31     }
32     public void setUpass(String upass) {
33         this.upass = upass;
34     }
35
36 }


数据库Dao 接口:UserDao

package cn.zj.qiao.interfaces;

import cn.zj.qiao.entity.vo.User;

public interface UserDao {
public Long addUser(User user);

}


Dao的实现类:UserDaoimpl

package cn.zj.qiao.spring.dao.userimpl;

import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateTemplate;

import cn.zj.qiao.entity.vo.User;
import cn.zj.qiao.interfaces.UserDao;

public class UserDaoImpl implements UserDao {

private HibernateTemplate ht = null;
private SessionFactory sessionFactory;

public void setSessionFactory(SessionFactory sessionFactory){
this.sessionFactory = sessionFactory;
}
public SessionFactory getSessionFactory(){
return sessionFactory;
}

public HibernateTemplate getHibernateTemplate(){
if(ht == null){
ht = new HibernateTemplate(sessionFactory);
}
return ht;
}
@Override
public Long addUser(User user) {
return (Long)getHibernateTemplate().save(user);
}
}


相关的jsp页面;

index.jsp:用户注册

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户注册</title>
</head>
<body>
<form action="register.action" method="post">
用户名:<input type="text" name="uname"/>
密  码:<input type="password" name="upass"/>
<input type="submit" value="注册"/>
</form>
</body>
</html>


显示结果的页面:success.jsp

1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2     pageEncoding="UTF-8"%>
3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7 <title>success</title>
8 </head>
9 <body>
10 注册成功
11 </body>
12 </html>


最后说明:包的导入情况没有细说,如果出现异常,可以根据异常信息自己百度神马的酌情加入或者删去一些包,此工程的配置文件除web.xml外,其它均放在WEB-INF/config目录下,此工程只是简单的测试一下框架的整合情况,所以只是前台一个jsp填写信息,然后写入数据库这样简单的逻辑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: