1.首先通過組合實現Hibernate3.2+Spring2.5支持,刪除hibernate.cfg.xml文件,修改applicationContext.xml文件內容,增加SessionFactory和dataSource的設置。
2.通過MyEclipse的向導模式生成POJO類和相應的映射文件。
3.修改
4.寫DAO接口和實現類。
5.修改applicationContext.xml文件並增加Dao實現類的配置。
6.結合Struts2和Spring2.5,修改web.xml文件,增加struts2所需的過濾器配置。
7.添加struts2對應的類庫以及struts2和spring的配置jar包。
8.將struts.xml文件復制到src根目錄,然後修改struts.xml文件來配置常量。
9.修改web.xml文件,配置Spring監聽器和上下文變量。並增加OpenSessionInViewFilter的設置。
10.編寫動作類。
11.配置struts.xml文件。
12.修改applicationContext.xml
13.寫Jsp文件。
14.加載正在運行的項目。
以下是關鍵文件的源代碼:
Struts.xml源代碼:
由Actipro CodeHighlighter(免費軟件)制作的代碼突出顯示功能-/-& gt;& lt?xml版本="1.0 "編碼="UTF-8 "?& gt
& lt!DOCTYPE struts公共
"-//Apache軟件基礎//DTD Struts配置2.0//EN "
“/-& gt;& lt?xml版本="1.0 "編碼="UTF-8 "?& gt
& ltwe B- app version = " 2.5 " xmlns = "/XML/ns/javaee "
xmlns:xsi="/xml/ns/javaee
/XML/ns/javaee/we b-app _ 2 _ 5 . xsd " & gt;
& lt!-配置spring的監聽器-& gt;
& lt上下文參數& gt
& ltparam-name & gt;contextConfigLocation & lt/param-name & gt;
& lt參數值& gt/WEB-INF/applicationContext*。xml & lt/param-value & gt;
& lt/context-param & gt;
& lt!-打開監視-& gt;
& lt聽眾& gt
& lt偵聽器類& gt
org . spring framework . web . context . context loader listener
& lt/listener-class & gt;
& lt/listener & gt;
& lt!-在struts2監聽之前配置OpenSessionInViewFilter-->;
& lt過濾器& gt
& lt過濾器名稱& gtlazyLoadingFilter & lt/filter-name & gt;
& ltfilter-class & gt;
org . spring framework . ORM . hibernate 3 . support . opensessioninviewfilter
& lt/filter-class & gt;
& lt/filter & gt;
& lt!-設置監聽加載上下文-& gt;
& lt過濾器& gt
& lt過濾器名稱& gtstruts2 & lt/filter-name & gt;
& ltfilter-class & gt;
org . Apache . struts 2 . dispatcher . filter dispatcher
& lt/filter-class & gt;
& lt/filter & gt;
& lt過濾器映射& gt
& lt過濾器名稱& gtlazyLoadingFilter & lt/filter-name & gt;
& lturl模式& gt*.動作& lt/URL-pattern & gt;
& lt/filter-mapping & gt;
& lt過濾器映射& gt
& lt過濾器名稱& gtstruts2 & lt/filter-name & gt;
& lturl模式& gt/* & lt;/URL-pattern & gt;
& lt/filter-mapping & gt;
& lt歡迎文件列表& gt
& lt歡迎文件& gtindex.jsp & lt/welcome-file & gt;
& lt/welcome-file-list & gt;
& lt/we B- app & gt;
ApplicationContext.xml源代碼:
由Actipro CodeHighlighter(免費軟件)制作的代碼突出顯示功能-/-& gt;& lt?xml版本="1.0 "編碼="UTF-8 "?& gt
& ltbeans xmlns = " mons . dbcp . basic data source " & gt;
& ltproperty name="driverClassName "
value = " com . MySQL . JDBC . driver " & gt;
& lt/property & gt;
& lt屬性名稱="url "
value = " JDBC:MySQL://localhost:3306/tables " & gt;
& lt/property & gt;
& ltproperty name = " username " value = " root " >& lt/property & gt;
& ltproperty name = " password " value = " hicc " & gt;& lt/property & gt;
& lt/bean & gt;
& ltbean id="sessionFactory "
class = " org . spring framework . ORM . hibernate 3 . localsessionfactorybean " & gt;
& ltproperty name="dataSource " >
& ltref bean = " data source "/& gt;
& lt/property & gt;
& ltproperty name = " hibernate properties " & gt;
& lt道具& gt
& ltprop key = " hibernate . dialect " & gt;
org . hibernate . dialect . MySQL dialect
& lt/prop & gt;
& ltprop key = " hibernate . show _ SQL " & gt;true & lt/prop & gt;
& lt/props & gt;
& lt/property & gt;
& ltproperty name="mappingResources " >
& lt列表& gt
& lt值& gtcom/sy/CRM/model/employee . hbm . XML & lt;/value & gt;
& lt/list & gt;
& lt/property & gt;
& lt/bean & gt;
& ltbean id="employeeDao "
class = " com . sy . CRM . Dao . hibernate . employeedaohibernate " & gt;
& ltproperty name="sessionFactory " >
& ltref bean = " session factory "/& gt;
& lt/property & gt;
& lt/bean & gt;
& ltbean id="employeeManager "
class = " com . sy . CRM . service . impl . employeemanagerimpl " & gt;
& ltproperty name="employeeDao " >
& ltref bean="employeeDao" />。
& lt/property & gt;
& lt/bean & gt;
& ltbean id = " add bean " class = " com . sy . CRM . action . employee action " scope = " prototype " & gt;
& ltproperty name="employeeManager " >
& ltref bean="employeeManager" />。
& lt/property & gt;
& lt/bean & gt;
& ltbean id = " list bean " class = " com . sy . CRM . action . employee action " scope = " prototype " & gt;
& ltproperty name="employeeManager " >
& ltref bean="employeeManager" />。
& lt/property & gt;
& lt/bean & gt;
& ltbean id = " delete bean " class = " com . sy . CRM . action . employee action " scope = " prototype " & gt;
& ltproperty name="employeeManager " >
& ltref bean="employeeManager" />。
& lt/property & gt;
& lt/bean & gt;
& ltbean id = " update bean " class = " com . sy . CRM . action . employee action " scope = " prototype " & gt;
& ltproperty name="employeeManager " >
& ltref bean="employeeManager" />。
& lt/property & gt;
& lt/bean & gt;
& ltbean id = " edit bean " class = " com . sy . CRM . action . employee action " scope = " prototype " & gt;
& ltproperty name="employeeManager " >
& ltref bean="employeeManager" />。
& lt/property & gt;
& lt/bean & gt;
& lt!-事務管理器-& gt;
& ltbean id="transactionManager "
class = " org . spring framework . ORM . hibernate 3 . hibernatetransactionmanager " & gt;
& ltproperty name="sessionFactory " >
& ltref local="sessionFactory"/>。
& lt/property & gt;
& lt/bean & gt;
& lt!-配置交易特征,並配置開始添加、刪除和更新的方法。事務傳播特征是必需的->;
& lttx:advice id = " tx advice " transaction-manager = " transaction manager " & gt;
& lttx:屬性& gt
& lttx:method name = " add * " propagation = " REQUIRED "/& gt;
& lttx:method name = " delete * " propagation = " REQUIRED "/& gt;
& lttx:method name = " update * " propagation = " REQUIRED "/& gt;
& lttx:method name="* "只讀= " true "/& gt;
& lt/tx:屬性& gt
& lt/tx:advice & gt;
& lt!-為事務管理配置那些類的方法,以及當前com.sy.crm.service包中的子包,
類中的所有方法都需要引用tx:advice-->的設置;
& ltAOP:config & gt;
& ltaop:切入點id="allManagerMethod "表達式= "執行(*
com.sy.crm.service.*。*(..))"/& gt;
& ltAOP:advisor advice-ref = " tx advice " pointcut-ref = " allManagerMethod "/& gt。
& lt/AOP:config & gt;
& lt/beans & gt;
Add.jsp源代碼:
由Actipro CodeHighlighter(免費軟件)制作的代碼突出顯示功能-/-& gt;& lt% @ page language = " Java " page encoding = " utf-8 " % & gt;
& lt% @ taglib uri = "/struts-tags " prefix = " s " % & gt;
& lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN " & gt;
& lthtml & gt
& lthead & gt
& lttitle & gt添加頁面& lt/title & gt;
& ltscript language = " JavaScript " src = " validation-framework . js " >& lt/script & gt;
& ltmeta/-& gt;& lt% @ page language = " Java " page encoding = " utf-8 " % & gt;
& lt% @ taglib uri = "/struts-tags " prefix = " s " % & gt;
& lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN " & gt;
& lthtml & gt
& lthead & gt
& lttitle & gt列出員工頁面& lt/title & gt;
& ltmeta http-equiv = " pragma " content = " no-cache " & gt;
& ltmeta http-equiv = " cache-control " content = " no-cache " & gt;
& ltmeta http-equiv = " expires " content = " 0 " >
& ltmeta http-equiv = " keyword " content = " keyword 1,keyword2,keyword3 " >
& ltmeta http-equiv = " description " content = "這是我的頁面" & gt
& ltstyle type="text/css " >
表格{
邊框:1px純黑;
邊框-塌陷:塌陷;
}
表標題和標題
邊框:1px純黑;
填充:3px
背景色:# cccccc
}
表t車身tr td {
邊框:1px純黑;
填充:3px
}
& lt/style & gt;
& lt/head & gt;
& ltbody & gt
& lt中心& gt
& lth3 & gt
員工管理:
& lt/H3 & gt;
& ltbr & gt
& lth4 & gt
& lta href= "../EMP/add . JSP " & gt;員工註冊
& lt/H4 & gt;
& lts:form action = " delete " theme = " simple " >
& lt表& gt
& ltthead & gt
& lttr & gt
& ltth & gt
挑選
& lt/th & gt;
& ltth & gt
數字
& lt/th & gt;
& ltth & gt
(全名)
& lt/th & gt;
& ltth & gt
電話
& lt/th & gt;
& ltth & gt
地址
& lt/th & gt;
& ltth & gt
操作
& lt/th & gt;
& lt/tr & gt;
& lt/thead & gt;
& lttbody & gt
& lts:iterator value = " employees " & gt;
& lttr & gt
& lttd & gt
& ltinput type="checkbox" name="id "
value = ' & lts:property value = " id "/>;'/& gt;
& lt/TD & gt;
& lttd & gt
& lts:屬性值= " id "/& gt;
& lt/TD & gt;
& lttd & gt
& lts:屬性值= " name "/& gt;
& lt/TD & gt;
& lttd & gt
& lts:屬性值= " phone "/& gt;
& lt/TD & gt;
& lttd & gt
& lts:屬性值= " address "/& gt;
& lt/TD & gt;
& lttd & gt
& lta
href = ' & lts:URL action = " edit " & gt;& lts:param name = " id " value = " id "/& gt;& lt/s:URL & gt;'& gt
修改
& lta
href = ' & lts:URL action = " delete " & gt;& lts:param name = " id " value = " id "/& gt;& lt/s:URL & gt;'& gt
刪除
& lt/TD & gt;
& lt/tr & gt;
& lt/s:iterator & gt;
& lt/tbody & gt;
& lt/table & gt;
& lts:submit value = " delete "/& gt;
& lt/s:form & gt;
& lt/center & gt;
& lt/body & gt;
& lt/html & gt;