這幾天把hibernate和spring好好看了下,再想想struts的一些東西,決定把3個(gè)整合一下一起用,表現(xiàn)層用struts+freemarker,業(yè)務(wù)層用spring,hibernate處理持久層。在struts中,利用委托,將action的處理委托給spring進(jìn)行,struts只負(fù)責(zé)頁面邏輯。
前些日子下了Eclipse 3.2+MyEclipse5.0M2,感覺MyEclipse一些東西還是不錯(cuò)的,就用它來做個(gè)整合。
首先,建立一個(gè)web project:

然后,給新建立的項(xiàng)目附加上struts的一些文件:

完成后項(xiàng)目結(jié)構(gòu)如下:

接著加入hibernate需要的文件:

完成后項(xiàng)目結(jié)構(gòu)為:

再加入spring的文件:

注意下面的選擇:

完成后可以看到:

打開那個(gè)applicationContext.xml,將

改為:

現(xiàn)在還需要做一些修改,才能在運(yùn)行的時(shí)候不報(bào)錯(cuò),我以前也寫過struts+hibernate的時(shí)候,會(huì)拋一個(gè)錯(cuò),之所以是由于hibernate包含的那個(gè)xerces.jar,所以現(xiàn)在直接把它給刪掉,沒什么問題。

在spring和hibernate那,有2個(gè)log4j.jar,老版本不好用,所以刪除,換一個(gè)新版本。
刪除

和

,換上

,然后,在src下加入一個(gè)log4j.properties:

內(nèi)容如下:

這樣log4j就配好了。
接下來是加入FreeMarker,jsp比不上,個(gè)人感覺。
先下一個(gè)freemarker.jar

,加到WEB-INF下的lib目錄,然后,打開web.xml,加入如下內(nèi)容:

下面來點(diǎn)實(shí)戰(zhàn)演習(xí)。
切換到MyEclipse的hibernate視圖。

打開數(shù)據(jù)庫連接:

然后,執(zhí)行

自動(dòng)生成幾個(gè)文件:

并且,spring的applicationContext.xml自動(dòng)加入

然后,建立ftl頁面,根據(jù)前面web.xml配置的freemarker設(shè)置,需要建立如下目錄
先把頁面邏輯處理下,打開struts-config.xml,然后進(jìn)行如下操作

繼續(xù)加

完成后效果如下:

下面是3個(gè)頁面:


這里注意下前2行,在freemarker中用struts標(biāo)簽。
前面說過action委托給spring做,許要在struts那加入

然后,action類需要修改下

下面的setter是為spring準(zhǔn)備的。
struts配置那的action聲明需要修改一下,說明用代理:

然后在spring的applicationContext.xml加上:

注意是用name,不是id。
發(fā)布,運(yùn)行,結(jié)果拋了個(gè)錯(cuò)

還好,問題不大,找到

加到WEB-INF/lib下就可以了。
開始測(cè)試

成功的話:

否則:

然后去數(shù)據(jù)庫一看,郁悶,數(shù)據(jù)沒進(jìn)來,試了N久,最后發(fā)現(xiàn)spring里要定義個(gè)dataSource。原來sessionFactory的定義變?yōu)槿缦拢?br />

ok,一切正常。到這里,就寫完了,只是為說明怎樣用MyEclipse進(jìn)行快速開發(fā),畢竟平時(shí)做項(xiàng)目要的是進(jìn)度,還要監(jiān)管質(zhì)量,有了MyEclipse,確實(shí)方便不少。
http://www.cnblogs.com/zxub/archive/2006/08/03/466682.html