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