Struts+Spring+Hibernate(JPA) + Ajax整合詳解(基於最新版本)

Java 6.0
Struts 2.2.1.1
Spring 3.0.5
Hibernate 3.6
                                  作者:     Liu Liu 轉載請註明出處

最新的SSH2整合。 考慮到這是第二篇了,代碼細節不再詳細註釋。

一、說明
     1) 參見《Struts+Spring+Hibernate整合入門詳解》
     2) 項目來源於struts的附帶文檔:docs/struts-2-spring-2-jpa-ajax.html,但原示例建立在舊版本之上,不能運行,因此進行了部分改造。
     3)eclipse工程和war包:http://download.csdn.net/source/3212035

 

二、環境搭建
    所需軟件包如下表:

 

序號

下載地址和文件(包)名

說明

1

JDK6.0

http://www.oracle.com/technetwork/java/javase/downloads/index.html


2

Eclipse JEE Developer

http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/heliossr2


3

HibernateSynchronizer

http://hibernatesynch.sourceforge.net/

可選,更新可能不及時

4

Hibernate3

http://www.hibernate.org

Hibernate 支持包

5

Spring

http://www.springsource.org/download


6

Struts

http://struts.apache.org/download.cgi

或者

 http://labs.renren.com/apache-mirror//struts/binaries/struts-2.2.1.1-all.zip

爲了較全的例子和文檔,建議下載
struts-* all.zip 否則只下載 lib struts-*-lib.zip

7

Tomcat

http://tomcat.apache.org

http://labs.renren.com/apache-mirror/tomcat/

建議下載 v5.5 以上版本,應用服務器(支持 JSP 等) Apache 項目之一

本例使用6.0

8

MySQL

 http://dev.mysql.com/downloads/

Hibernate 演示需要

如果其他HSQLDB 或者H2DB 都可以

 

1 、2安裝和運行eclipse,請參見《Struts+Spring+Hibernate整合入門詳解》

3 、運行 eclipse ,選擇一個空目錄作爲工作區( WorkSpace ),啓動以後可以看到 Welcome.html 的歡迎界面。現在建立新工程 File à New à Project ,在打開的 New Project 窗口中選擇 Web à Dynamic Web Project 。輸入 Project name ,在 Target Runtime 一項選擇新建 (New) ,選擇你所安裝的 Apache Tomcat ,在彈出窗口輸入相關信息( Tomcat 安裝目錄等)。

新建工程流程如下圖。


 

工程結構如下:

 

其中我們要寫的 Java 代碼在 Java Resource: src (以後直接稱 src )下,網站根目錄內容在 WebContent 下,類所在根目錄是 WEB-INF/classes , Eclipse 會自動將 build/classes 裏面已經編譯的類同步過去。
向 WEB-INF 下的 lib 目錄添加如下所列的 jar 包。 
( 1 )這些包在下載解壓後 Spring , Struts , Hibernate 的 lib 目錄或者 dist/module 目錄下面(如果不在,可以到網上 google 一把。列表中 mysql-*.jar 包是 MySQL 數據庫的 JDBC Driver,請拷貝過來 )。也可以把所有 lib 和 dist 下的 jar 包拷貝過來(可以在系統複製這些 jar 包,然後到 Eclipse 裏面選中 WEB-INF 裏面的 lib 包,然後粘帖就可以了)。但要注意全拷貝可能會存在衝突,如 某些struts*plugin.jar 等包不能引入,否則引起衝突。
( 2 )這些 Jar 包是(開發中根據需要進行包的增減):
antlr-2.7.6.jar
aopalliance-1.0.jar
cglib-2.2.jar
classworlds-1.1.jar
commons-beanutils-1.7.0.jar
commons-chain-1.2.jar
commons-collections-3.2.jar
commons-digester-2.0.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-lang-2.3.jar
commons-logging-1.0.4.jar
commons-logging-api-1.1.jar
commons-validator-1.3.1.jar
dom4j-1.6.1.jar
dwr-1.1.1.jar
ehcache-1.5.0.jar
ezmorph-1.0.3.jar
freemarker-2.3.16.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
json-lib-2.1-jdk15.jar
jta-1.1.jar
juli-6.0.18.jar
mysql-connector-java-3.0.14-production-bin.jar
ognl-3.0.jar
org.apache.felix.bundlerepository-1.2.1.jar
org.apache.felix.framework-1.4.1.jar
org.apache.felix.main-1.4.1.jar
org.apache.felix.shell.tui-1.0.2.jar
org.apache.felix.shell-1.0.2.jar
org.springframework.aop-3.0.5.RELEASE.jar
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.aspects-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context.support-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar
org.springframework.instrument.tomcat-3.0.5.RELEASE.jar
org.springframework.instrument-3.0.5.RELEASE.jar
org.springframework.jdbc-3.0.5.RELEASE.jar
org.springframework.jms-3.0.5.RELEASE.jar
org.springframework.orm-3.0.5.RELEASE.jar
org.springframework.oxm-3.0.5.RELEASE.jar
org.springframework.transaction-3.0.5.RELEASE.jar
org.springframework.web.portlet-3.0.5.RELEASE.jar
org.springframework.web.servlet-3.0.5.RELEASE.jar
org.springframework.web.struts-3.0.5.RELEASE.jar
org.springframework.web-3.0.5.RELEASE.jar
oro-2.0.8.jar
oval-1.31.jar
plexus-container-default-1.0-alpha-10.jar
plexus-utils-1.2.jar
sitemesh-2.4.2.jar
slf4j-api-1.6.1.jar
sslext-1.2-0.jar
struts2-core-2.2.1.1.jar
struts2-dojo-plugin-2.2.1.1.jar
struts2-dwr-plugin-2.2.1.1.jar
struts2-osgi-admin-bundle-2.2.1.1.jar
struts2-spring-plugin-2.2.1.1.jar
struts-core-1.3.10.jar
tiles-api-2.0.6.jar
tiles-core-2.0.6.jar
tiles-jsp-2.0.6.jar
velocity-1.6.3.jar
velocity-tools-1.3.jar
xpp3_min-1.1.3.4.O.jar
xstream-1.2.2.jar
xwork-core-2.2.1.1.jar


三、開始工作


3.1 建立數據庫表,mysql相關使用請另外查詢。

CREATE TABLE 'quickstart'.'Person' (

  'id' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,

  'firstName' VARCHAR(45) NOT NULL,

  'lastName' VARCHAR(45) NOT NULL,

  PRIMARY KEY('id')

)

ENGINE = InnoDB;

 

3.2 建立領域模型


 

3.3 建立一個服務層

 

 

 

3.4 配置JPA
在src下建立目錄META-INF,在其下建立persistence.xml,這裏不配置數據源(mysql訪問),因爲spring和hibernate的配置文件可以配置,見後applicationContext.xml。

 

 

3.5 集成Spring,文件WebContent/WEB-INF/web.xml如下

 

在/WebContent/WEB-INF下建立文件applicationContext.xml,內容如下:

 

3.6 集成Struts
3.6.1 實現一個監聽Web請求的action,這裏是POJO!比當初的struts先進多了!

 

3.6.2 在src下建立文件struts.xml

 

3.6.3 在 WebContent 下建立 index.jsp。

 

3.6.4. 在WebContent下建立pages/list.jsp

 

3.6.5. struts驗證姓名的有效性
在src/quickstart/action/目錄下建立PersonAction-save-validation.xml

 

此時就可以運行該工程,忙了這麼久,看看效果吧。
運行方式:右鍵點擊 index.jsp ,選擇 Run/Debug As à Run on Server ,在彈出窗口中默認我們使用的 Tomcat Server ,點擊 finish 完成。可以看到 eclipse 中內嵌的瀏覽器顯示我們的網頁。其中表單的輸入在我們的工程中將得到輸入數據,這些數據會傳給我們將要建立的 Action 處理,並以ajax的異步方式處理數據。
 
    附件是導出的WAR文件,其中lib已被清空,只要加入文中列出的lib文件即可運行(可以將WAR導入eclipse,或者將war文件放到Tomcat的webaspps下)
    相比幾年前的那篇入門,現在的ssh發展已經非常成熟,更加易用了,感謝開源!

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章