萬里獨(dú)行 |
|
|||
策馬牧羊 |
日歷
統(tǒng)計(jì)
導(dǎo)航常用鏈接留言簿(1)隨筆檔案文章檔案友情鏈接
搜索最新評(píng)論
閱讀排行榜評(píng)論排行榜 |
Struts和Spring的新版本變動(dòng)很大,搭建開發(fā)環(huán)境時(shí)配置文件的內(nèi)容也隨著改變了,前段時(shí)間為了搭建開發(fā)環(huán)境費(fèi)了不小勁,現(xiàn)在發(fā)布出來希望能給新手一點(diǎn)幫助。網(wǎng)上關(guān)于ssh開發(fā)環(huán)境的說明都是基于Struts1.2和Spring2的,而且都是以Eclipse為IDE,當(dāng)然IDE對(duì)開發(fā)環(huán)境的搭建沒有明顯的影響,但是在NetBeans下搭建ssh開發(fā)環(huán)境還是快捷得多的。
NetBeans6.1自帶了Spring2.5,Struts1.2,沒有Hibernate支持,所以為了搭建Struts2.0+Spring2.5+Hibernate3的開發(fā)環(huán)境,必需下載Struts2.0和Hibernate3的NetBeans插件,這都是很容易找到的,確實(shí)找不到就留下郵箱吧。在NetBeans里安裝插件的方法: 工具-插件- 已下載-添加插件-安裝。 好了,插件安裝完畢,重啟NetBeans后新建Web項(xiàng)目,修改項(xiàng)目名之后一路默認(rèn)走下去,在框架選擇那一步把Struts2.0、Spring2.5和Hibernate勾上,完成,這樣就創(chuàng)建了一個(gè)具有ssh支持的Web項(xiàng)目。但是,要整合使用ssh還得進(jìn)入最麻煩的一步:修改配置文件。下面就以一例子來說明修改配置文件的過程。 新建了上面的項(xiàng)目后,NetBeans自動(dòng)為你生成了一個(gè)HelloWorld的Struts例子,就在這個(gè)例子上面改吧。 在源包-缺省包里有一個(gè)Struts配置文件example.xml,內(nèi)容如下 1
這只是一個(gè)簡(jiǎn)單的action配置節(jié),這個(gè)文件被struts.xml 包含(include),所以服務(wù)器能找到它。![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 接下來是最關(guān)鍵的配置--Spring配置文件applicationContext.xml,以下內(nèi)容都在<Beans>配置節(jié)里添加: 1。首先添加數(shù)據(jù)源Bean 1
添加mysql驅(qū)動(dòng)包這些與主題不靠緊的話就不多說了,注意上面這段配置內(nèi)容要根據(jù)你的實(shí)際情況配置url、username和password。![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 8 ![]() 9 ![]() 10 ![]() 2。讓Spring管理Hibernate 1
這樣就將SSH整合了。![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 8 ![]() 9 ![]() 10 ![]() 11 ![]() 12 ![]() 在源包新建類User,里面只有一個(gè)字段user 1
![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 8 ![]() 9 ![]() 然后修改Action類HelloWorld.java,它繼承于com.opensymphony.xwork2.ActionSupport,繼承這個(gè)類的好處是你只需要覆蓋一個(gè)簡(jiǎn)單的execute()并通過返回字符串來標(biāo)識(shí)跳轉(zhuǎn)到的頁面。 在HelloWorld.java添加私有字段user和對(duì)應(yīng)的set方法(可在添加字段后用Netbeans的 重構(gòu)-封裝字段 生成set方法) 添加message字段和get方法(為什么這里是get?因?yàn)閙essage是為了后面讓jsp讀取的,而user是為了讓Spring寫入的) 1
然后在applicationContext.xml里為User實(shí)體和HelloWorld Action增加配置節(jié)![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 8 ![]() 9 ![]() 10 ![]() 11 ![]() 12 ![]() 13 ![]() 14 ![]() 15 ![]() 16 ![]() 17 ![]() 1
![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 這樣,實(shí)體和Action就在Spring的管理之下了,于是可以在example.xml這樣配置Action(修改自動(dòng)生成的配置文件如下) 1
這里class的值就是前面Spring配置文件里定義的Action Bean,每當(dāng)有請(qǐng)求發(fā)送到HelloWorld時(shí),就會(huì)交由這個(gè)Bean處理。![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 修改HelloWorld.jsp的內(nèi)容如下 1
運(yùn)行這個(gè)頁面,點(diǎn)擊“獲得User的名字”超鏈接就能看見“Ruby”了,這是你在Spring配置文件里定義的。到這里Struts和Spring整合的例子就完成了,如果要把Hibernate部分也包含進(jìn)去,則要增加一個(gè)dao類用作數(shù)據(jù)存取。![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 8 ![]() 9 ![]() 10 ![]() 11 ![]() 12 ![]() 13 ![]() 14 ![]() 15 ![]() 16 ![]() 17 ![]() 首先在源包增加一個(gè)Hibernate映射文件user.hbm.xml(可用Netbeans的向?qū)лo助) 1
(這里假設(shè)你已經(jīng)建立mysql數(shù)據(jù)和user表,里面有userName這個(gè)字段)![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 在Spring配置文件找到剛才的管理Hibernate的配置節(jié),如下方法把Hibernate映射文件添加進(jìn)去 1
![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 8 ![]() 9 ![]() 10 ![]() 11 ![]() 12 ![]() 13 ![]() 14 ![]() 15 ![]() 然后在源包添加類UserDao.java 1
(必須繼承于HibernateDaoSupport ,否則無法獲取Hibernate上下文)![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 8 ![]() 9 ![]() 10 ![]() 11 ![]() 12 ![]() 13 ![]() 14 ![]() 15 ![]() 16 ![]() 17 ![]() 18 ![]() 19 ![]() 代碼很容易明白,不多說了,然后在applicationContext.xml增加如下配置節(jié) 1
這里之所以要設(shè)置sessionFactory屬性,是因?yàn)檫@個(gè)dao類繼承了HibernateDaoSupport ,dao類正式通過這獲得Hibernate支持的。![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 然后就要修改HelloWorld.java,給它添加一個(gè)UserDao私有字段和set方法,刪掉原來的user字段。 1
![]() 2 ![]() 3 ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 8 ![]() 9 ![]() 10 ![]() 11 ![]() 12 ![]() 13 ![]() 14 ![]() 這是再運(yùn)行HelloWorld.jsp,點(diǎn)擊“獲得User的名字”,你會(huì)看見ruby,于剛才所不同的是,這個(gè)字符是從數(shù)據(jù)庫讀出的,而不是在Spring配置文件里定義的(當(dāng)然你的user數(shù)據(jù)表必須有ruby這個(gè)記錄,否則讀出空值)。 到這里,SHH整合的例程就完成了。為了簡(jiǎn)便起見,例子沒有考慮到有效的分層結(jié)構(gòu),全部文件直接放在了源包,但這部分不屬于如何整合SSH的范疇,所以請(qǐng)讀者自己摸索了。 由于這是翻看以前寫的例子寫下的例程,所以難免代碼有錯(cuò)漏,歡迎指出。
評(píng)論:
|
![]() |
|
Copyright © 萬里獨(dú)行 | Powered by: 博客園 模板提供:滬江博客 |