Struts2與Spring2.6、Hibernate3.2三者整合的過程示例:
示例工具:MyEclipse 8.5、Tomcat 6.0、MySql
步驟:
1.創建一個WEB工程,命名爲s2sh(名字自己取,此處爲示例工程名);
2.導入struts2的核心jar包,也就是在WEB-INF下的lib文件夾中放入jar包文件
commons-fileupload.jar
commons-io.jar
freemarker.jar
javassist.jar
ognl-2.6.11.jar
struts2-core-2.0.14.jar
struts2-spring-plugin-2.0.14.jar
xwork-2.0.7.jar
3.添加Spring支持(項目右鍵MyEclipse Spring Capabilities …)
選擇:
1) Spring version:Spring 2.5
2) Select the libraries to add the buildpath:
Spring 2.5 AOP Libraries
Spring 2.5 Core Libraries
Spring 2.5 Persistence Core Libraries
Spring 2.5 Persistence JDBC Libraries
Spring 2.5 Web Libraries
3) JAR Library Installation:
Copy checked Library contents to project folder (TLDs always copied)
Next
4) Spring配置文件選擇目錄Folder:WebRoot/WEB-INF
Finish
4.添加Hibernate支持(項目右鍵MyEclipse Hibernate Capabilities …)
選擇:
1)Hibernate Specification:Hibernate3.2
2)Select the libraries to ad to the buildpath:Hibernate 3.2 Core Libraries和Hibernage 3.2 Annoations
3)JAR Library Installation:Copy checked Library Jars to project folder and add to build-path
Next
4)選擇:Spring configuration file(applicationContext.xml) Next
5)選擇:Existing Spring configuration file
SessionFactory Id: sessionFactory Next
6)Bean Id:dataSource
DB Driver:選擇配置好的Hibernate。Next
7)不建立SessionFactory(不選擇Create SessionFactory class?)
8)Finish。
5.創建struts.xml文件,在src包下新建一個struts.xml文件,該文件內容如下:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.objectFactory" value="spring" />
<package name="default" extends="struts-default">
<action name="registerAction" class="RegisterAction">
<result name="fail">/login.jsp </result>
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
6.配置web.xml文件,其內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- Struts2 與 Spring 整合 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<!-- 整合Struts2 -->
<filter>
<filter-name>Struts2.0</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts2.0</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 整合Spring與Struts2的類自動加載器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
7.反向生成實體類文件
1).準備數據庫,假如名爲s2sh,裏面有一個User的表
2).在MyEclipse的右上角切換透視圖,切換到MyEclipse Database Explorer
3).然後在最左邊點擊右鍵,選擇New(也就是說新建一個數據庫連接,Driver Name叫s1sh,方便下面解釋,其它的跟平常用的一樣),,配置好連接以後點擊Next,進入下一個窗體, 選擇第三個單選按鈕(Display the selected Schemas),然後點擊右邊的Add按鈕,也就是說添加你的數據庫,然後點擊完成按鈕,這樣你的數據庫連接就創建好了;
在你剛纔創建的s1sh上右鍵,選擇Open connection, 一直展開到s2sh下面的TABLE,展開TABLE,在我們創建的User表上點擊右鍵,選擇Hibernate Reverse Engineering(這個就是反向生成),出來一個面板 在Java src folder 選擇這個工程的src目錄,然後在Java Package上選擇剛纔我們在工程裏面創建好的bean包,接下來就是勾中前三個複選框就可以了,點擊Next,又會出現一個面板,這個面板可以不用管,然後點擊Next,這個面板也不用管,點擊Finish,然後就會生成實體類和映射文件了。
8.創建Action
在src包下新建一個包,名爲"com.beyondsoft.action"(名字僅爲示例,只寫一個com也可以,示例寫法是採取struts中的action包名寫法),在該包下新建一個action類RegisterAction.java,其內容如下:
package com.beyondsoft.action;
import java.util.List;
import com.beyondsoft.bean.User;
import com.beyondsoft.bean.UserDAO;
import com.opensymphony.xwork2.ActionSupport;
public class RegisterAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String userName;
private String password;
private UserDAO userDAO;
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute() {
userDAO.save(new User(userName,password));
return "success";
}
}
10.創建頁面,創建登錄頁面login.jsp,內容如下:
<%@ page language="java" pageEncoding="gb2312"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<html>
<head>
<title>用戶註冊</title>
</head>
<body>
<center>
<div id="register">
<s:form action="registerAction">
<s:textfield label="用戶名" name="userName"></s:textfield>
<s:password label="密碼" name="password"></s:password>
<s:submit value="註冊"></s:submit>
</s:form>
</div>
</center>
</body>
</html>
頁面中,先導入struts2標籤庫,用來創建form表單。form表單提交給與登錄相關的RegisterAction.java文件,而RegisterAction.java在struts.xml文件中相應的name值爲"registerAction”,所以這裏的action值爲"loginAction"。至於用戶名文本框與密碼文本框的name值則與RegisterAction.java文件中的userName與password完全匹配。
11.配置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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/s2sh"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/beyondsoft/bean/User.hbm.xml</value>
</list>
</property>
</bean>
<bean id="RegisterAction" class="com.beyondsoft.action.RegisterAction">
<property name="userDAO">
<ref bean="UserDAO" />
</property>
</bean>
<bean id="UserDAO" class="com.beyondsoft.bean.UserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
</beans>
刪除sam-2.2.3.jar cglib-2.1.3.jar 運行
這樣一個最簡單的Struts2 Spring2.6 Hibernate3.2的實例就出來了,如果你要實現更多的功能可以在這個的基礎上面再加。
s2sh整合實例 Struts2.0 Spring2.6 Hibernate3.2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.