本文應用SSH框架版本
Struts Version-struts-2.3.12-all.zip
Spring Version-spring-framework-3.0.1.RELEASE-A.zip
Hibernate Version-hibernate-3.2.5.ga.zip
下載地址
http://struts.apache.org/download
http://www.springsource.com/download/community
http://sourceforge.net/projects/hibernate/files/hibernate3/
一、加入struts相關配置
new一個web project 並且導入struts相關jar包
ognl-3.0.6.jar
struts2-core-2.3.12.jar
xwork-core-2.3.12.jar
commons-logging-api-1.1.jar
commons-lang3-3.1.jar
commons-fileupload-1.2.2.jar
freemarker-2.3.19.jar
commons-logging-1.1.1.jar
commons-io-2.0.1.jar
javassist-3.11.0.GA.jar (本jar包在struts2-blank-2.2.1.war示例工程中的web-inf/lib下可找到)
注: Jar包如果找不到的話可以去struts2-blank-2.2.1.war示例工程中的web-inf/lib下將里面的jarcopy 過去即可
src包下建立一個class繼承ActionSupport類。並且寫好一個action方法,並且在src包下面建立struts.xml配置該action
public class UserLogin extends ActionSupport{
public String login(){
System.out.println("經過了");
return SUCCESS;
}
}
ClassPath下的struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default">
<action name="login" class="com.struts.action.UserLogin" method="login">
<result name="success">/WEB-INF/pages/index.jsp</result>
</action>
</package>
</struts>
更改web.xml加入struts相關配置
<!-- struts 跳轉action配置 start -->
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>com.*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<!-- struts 跳轉action配置 end -->
說明:到此為止已經搭建完成了具備了一個struts2基本功能的web 項目。大家可以發布項目然后訪問一下自己的action。看看有沒有日志輸出
二、加入spring相關配置
導入Jar包
將下載下來的jar包目錄為spring-framework-3.0.1.RELEASE-A.zip包解壓。找到里面的spring-framework-3.0.1.RELEASE-A\dist目錄下的所有jar包copy到項目lib目錄下
classpath下准備好applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<bean id="UserLogin" class="com.struts.action.UserLogin">
</bean>
</beans>
在web.xml中鍵入spring配置
<!-- spring bean 容器配置start -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/applicationContext*.xml</param-value>
</context-param>
<!-- spring bean 容器配置end -->
整合spring和struts
導入struts下載包的struts2-spring-plugin-2.3.12.jar包即可
說明:到此我們就可以將struts.xml中配置class寫為
<action name="login" class="UserLogin"method="login">這里的class和spring的bean配置的id關聯
到此為止我們就整合了兩個框架。啟動服務,訪問一下action。發現還是輸出日志。正常。
三、加入hibernate相關配置
導入Jar包
將hibernate解壓包下的hibernate3.jar和lib文件夾下的文件全部copy到項目中。另外還要加入你的jdbc驅動。(這個要根據你的數據庫而定了)
在classpath下面建立xml文件hibernate.cfg.xml代碼如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="connection.url">
jdbc:oracle:thin:@localhost:1521:orcl
</property>
<!-- 數據庫連接設置 -->
<property name="eclipse.connection.profile">oracle</property>
<property name="connection.username">weibo</property>
<property name="connection.password">weibo</property>
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<!-- show_sql 生成SQL語句 -->
<property name="show_sql">true</property>
<property name="defaultAutoCommit">true</property> <!-- oracle特有的提交更改 -->
<!-- SQL dialect 方言 -->
<property name="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<!-- 添加實體類的映射文件-->
<mapping resource="com/struts/model/Student.hbm.xml" />
<!-- Annotation方式配置
<mapping class="entity.Login"/>
-->
</session-factory>
</hibernate-configuration>
在classpath下建立applicationContext-hibernate.xml
注:以下代碼中的dataSource沒有用到。大家也可以試試LocalSessionFactoryBean的另外一個構造函數。這個我不多說大家去看API或者源碼
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<!-- 配置dataSource start -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver" />
<property name="jdbcUrl"
value="jdbc:oracle:thin:@localhost:1521:orcl" />
<property name="user" value="weibo" />
<property name="password" value="weibo" />
<property name="minPoolSize" value="2" />
<property name="maxPoolSize" value="50" />
<property name="initialPoolSize" value="10" />
<property name="maxIdleTime" value="60" />
<property name="acquireIncrement" value="2" />
</bean>
<!-- 配置dataSource end -->
<!-- 配置sessionFactory start-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:/hibernate.cfg.xml</value>
</property>
</bean>
<!-- 配置sessionFactory end-->
<!-- 配置hibernateTemplate -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
</beans>
加入hibernateTemplate的注入
<bean id="UserLogin" class="com.struts.action.UserLogin">
<property name="hibernateTemplate" ref="hibernateTemplate"></property>
</bean>
修改UserLogin類
public class UserLogin extends ActionSupport{
private HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
public String login(){
Student stu = new Student();
stu.setName("zhanglie");
hibernateTemplate.save(stu);
System.out.println("經過了");
return SUCCESS;
}
映射文件和POJO
package com.struts.model;
public class Student {
private String id;
private String name;
private Integer age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.struts.model.Student" table="STUDENT">
<id name="id" column="id" type="java.lang.String">
<generator class="uuid"/>
</id>
<property name="name" type="java.lang.String" column="name">
</property>
<property name="age" type="java.lang.Integer" column="age">
</property>
</class>
</hibernate-mapping>
訪問你配置的action以完成插入操作

源碼打包下載:
http://pan.baidu.com/share/link?shareid=403237&uk=1997312776
