版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
-1-掌握struts.xml文件主要元素的配置掌握Action的實(shí)現(xiàn)方式掌握Action對(duì)ActionContext的訪問(wèn)方式掌握Action對(duì)ServletAPI的訪問(wèn)方式掌握Action的配置方式及通配符配置掌握處理結(jié)果的流程掌握利用通配符動(dòng)態(tài)配置result掌握dispatcher、redirect和redirectAction等結(jié)果類(lèi)型的使用掌握Struts2的異常處理機(jī)制及配置方式目標(biāo)-2-常量配置在perties文件中配置在struts.xml文件中配置在web.xml文件中配置示例:3.1-3-包配置Struts2中每個(gè)包就是由若干個(gè)Action、攔截器和攔截器引用組成的集合Struts2框架通過(guò)包來(lái)管理Action和攔截器等核心組件。使用包的好處就是把一組邏輯相關(guān)的Action和攔截器等組件組織在一起,從而便于管理<struts> <!--配置了一個(gè)name為login的包,該包繼承了struts-default包--> <packagename="login"extends="struts-default">
</package></struts>-4-命名空間配置命名空間用來(lái)解決Action名稱(chēng)沖突的問(wèn)題<struts><!--配置一個(gè)name為p1的包,命名空間為“/admin”--><packagename="p1"extends="struts-default"namespace="/admin"> <actionname="login"class="com.dh.ch03.action.LoginAction"> <resultname="error">/error.jsp</result> <result>/success.jsp</result> </action></package><!--配置一個(gè)name為p2的包,命名空間默認(rèn)--><packagename="p2"extends="struts-default"> <actionname="login"class="com.dh.ch03.action.LoginAction"> <resultname="error">/error.jsp</result> <result>/success.jsp</result> </action> </package></struts>-5-包含配置Struts2允許將配置文件分解成多個(gè)文件,利用struts.xml文件來(lái)包含其他的配置文件,從而使得配置文件更具有可讀性和可維護(hù)性。<struts> <!--管理員模塊--> <includefile="bookshop-admin.xml"/> <!--用戶管理--> <includefile="bookshop-user.xml"/> <!--產(chǎn)品管理模塊--> <includefile="bookshop-product.xml"/> <!--購(gòu)物車(chē)模塊--> <includefile="bookshop-shoppingcart.xml"/></struts>-6-實(shí)現(xiàn)ActionPOJO實(shí)現(xiàn)方式 包含一個(gè)特定方法execute(),該方法沒(méi)有任何參數(shù),返回值為字符串類(lèi)型實(shí)現(xiàn)Action接口
Action接口定義了SUCCESS、NONE、ERROR、INPUT和LOGIN等字符串常量,規(guī)范了execute()方法的返回值繼承ActionSupport
提供了許多默認(rèn)方法,包括獲取國(guó)際化信息的方法,數(shù)據(jù)校驗(yàn)的方法,默認(rèn)處理用戶請(qǐng)求的方法等。是Struts2缺省的Action處理類(lèi)示例:3.7~3.9-7-使用ActionContext訪問(wèn)ServletAPI使用ActionContext可以訪問(wèn)ServletAPI示例:3.10方法描述Objectget(Objectkey)
該方法和HttpServletRequest的getAttribute(Stringname)方法類(lèi)似MapgetApplication()返回一個(gè)Map對(duì)象,該對(duì)象模擬了Web應(yīng)用對(duì)應(yīng)的ServletContext對(duì)象ActionContextgetContext()獲取系統(tǒng)的ActionContext對(duì)象MapgetParameters()獲取所有的請(qǐng)求參數(shù),類(lèi)似于調(diào)用HttpServletRequest對(duì)象的getParameterMap()方法MapgetSession()返回一個(gè)Map對(duì)象,該對(duì)象模擬了HttpSession對(duì)象voidsetApplication(Mapapplication)直接傳入一個(gè)Map對(duì)象,將該Map對(duì)象中的key-value對(duì)轉(zhuǎn)換成application的屬性名和屬性值voidsetSession(Mapsession)直接傳入一個(gè)Map對(duì)象,將該Map對(duì)象里的key-value對(duì)轉(zhuǎn)換成session的屬性名和屬性值-8-直接訪問(wèn)ServletAPI-1方式1:實(shí)現(xiàn)Struts2提供的接口示例:3.11接口描述ServletContextAware實(shí)現(xiàn)該接口的Action可以直接訪問(wèn)web應(yīng)用的ServletContext對(duì)象ServletRequestAware實(shí)現(xiàn)該接口的Action可以直接訪問(wèn)用戶請(qǐng)求的HttpServletRequest對(duì)象ServletResponseAware實(shí)現(xiàn)該接口的Action可以直接訪問(wèn)服務(wù)器響應(yīng)的HttpServletResponse對(duì)象-9-直接訪問(wèn)ServletAPI-2方式2:使用ServletActionContext輔助類(lèi)方法描述staticPageContextgetPageContext()取得web應(yīng)用的PageContext對(duì)象staticHttpServletRequestgetRequest()取得web應(yīng)用的HttpServletRequest對(duì)象staticHttpServletResponsegetResponse()取得web應(yīng)用的HttpServletResponse對(duì)象staticServletContextgetServletContext()取得web應(yīng)用的ServletContext對(duì)象-10-配置Action在struts.xml中配置Action示例3.12<packagename="counter"extends="struts-default"><!--配置處理請(qǐng)求的Action,其實(shí)現(xiàn)類(lèi)為com.dh.ch03.action.CounterAction--> <actionname="counter" class="com.dh.ch03.action.CounterAction"> <resultname="success">/counter.jsp</result> </action></package>-11-動(dòng)態(tài)方法調(diào)用DMI(DynamicMethodInvocation,動(dòng)態(tài)方法調(diào)用)以“actionName!methodName.action”的形式來(lái)訪問(wèn)Action
如“reg!del.action”表示訪問(wèn)name屬性為“reg”的Action中的del()方法示例3.12-12-通配符配置在struts.xml中使用通配符配置Action示例3.13<struts> <!--演示通配符的使用方法--> <packagename="user"extends="struts-default"> <actionname="*user" class="com.dh.ch03.action.UserAction" method="{1}"> <resultname="success">/success.jsp</result> <resultname="del">/del.jsp</result> <resultname="edit">/edit.jsp</result> </action> </package></struts>-13-Struts2結(jié)果處理流程-14-result配置局部結(jié)果:<result>元素作為<action>元素的子元素全局結(jié)果:<result>元素作為<global-results>元素的子元素<packagename="test"extends="struts-default"> <actionname="login"class="com.dh.ch03.action.LoginAction"> <resultname="success"type="dispatcher"> /welcome.jsp </result> </action></package><packagename="test"extends="struts-default"> <global-results> <result>/welcome.jsp</result> </global-results> Action配置</package>-15-result類(lèi)型結(jié)果類(lèi)型描述chain結(jié)果類(lèi)型用于進(jìn)行Action鏈?zhǔn)教幚韈hart結(jié)果類(lèi)型用于整合JFreeChart技術(shù)dispatcher結(jié)果類(lèi)型用于整合JSP技術(shù)freemarker結(jié)果類(lèi)型用于整合FreeMarker技術(shù)httpheader結(jié)果類(lèi)型用于控制特殊的HTTP行為jasper結(jié)果類(lèi)型用于整合JasperReport報(bào)表技術(shù)jsf結(jié)果類(lèi)型用于整合JSF技術(shù)redirect結(jié)果類(lèi)型用于重定向到其他URLredirectAction結(jié)果類(lèi)型用于重定向到其他的Actionstream結(jié)果類(lèi)型用于向?yàn)g覽器返回InputStream,一般用于文件下載tiles結(jié)果類(lèi)型用于整合Tiles技術(shù)velocity結(jié)果類(lèi)型用于整合Velocity技術(shù)xslt結(jié)果類(lèi)型用于整合XML/XSLT技術(shù)plainText結(jié)果類(lèi)型用于顯示某個(gè)頁(yè)面的源代碼<result>元素使得邏輯視圖和物理視圖之間產(chǎn)生映射關(guān)系默認(rèn)類(lèi)型是dispatcher示例:3.14-16-動(dòng)態(tài)result動(dòng)態(tài)result可以根據(jù)請(qǐng)求來(lái)動(dòng)態(tài)的決定實(shí)際視圖資源示例3.D.8<actionname="*user"class="com.dh.ch03.action.UserAction" method="{1}"><result>/{1}.jsp</result></action>-17-異常處理-18-異常配置Struts2的異常處理是通過(guò)在struts.xml中配置<exception-mapping>元素來(lái)完成的,配置該元素時(shí)需要指定兩個(gè)屬性:exception:指定Action出現(xiàn)的異常所映射的異常類(lèi)型result:指定Action拋出異常時(shí),系統(tǒng)轉(zhuǎn)入該屬性值對(duì)應(yīng)的action或者global-results中配置的result元素根據(jù)<exception-mapping>元素出現(xiàn)位置的不同,異常映射又分為兩種:局部異常映射:將<exception-mapping>元素作為<action>元素的子元素配置全局異常映射:將<exception-mapping>元素作為<global-exception-mappings>元素的子元素配置示例:3.16-19-Struts2框架以配置文件的方式來(lái)管理核心組件,允許方便的擴(kuò)展組件在struts.xml文件中通過(guò)配置常量來(lái)改變框架的默認(rèn)行為Struts2的包就是若干個(gè)Action、攔截器、攔截器引用組成的集合通過(guò)命名
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年物業(yè)損害和解書(shū)
- 2024年版影視制作與發(fā)行合作協(xié)議
- 三分鐘即興演講稿范文
- 2024年房屋租賃買(mǎi)賣(mài)協(xié)議6篇
- 《分娩疼痛相關(guān)因素及不同分娩鎮(zhèn)痛措施的對(duì)比研究》
- 《微波消解-雙濁點(diǎn)萃取-MPT-AES法測(cè)定瑪卡中的重金屬元素》
- 《會(huì)計(jì)穩(wěn)健性、信用評(píng)級(jí)與債券融資成本》
- 《《研究與創(chuàng)新-瑞士的推廣途徑及措施》(節(jié)選)英漢翻譯實(shí)踐報(bào)告》
- 車(chē)輛升級(jí)改裝合同范例
- 2024年度電商供應(yīng)鏈金融服務(wù)合同樣本2篇
- 護(hù)理品管圈誤區(qū)及關(guān)鍵
- 半導(dǎo)體封裝過(guò)程wirebond中wireloop的研究及其優(yōu)化
- 15m鋼棧橋施工方案
- FZ∕T 97040-2021 分絲整經(jīng)機(jī)
- 應(yīng)聘人員面試登記表(應(yīng)聘者填寫(xiě))
- T∕CAAA 005-2018 青貯飼料 全株玉米
- s鐵路預(yù)應(yīng)力混凝土連續(xù)梁(鋼構(gòu))懸臂澆筑施工技術(shù)指南
- 撥叉831006設(shè)計(jì)說(shuō)明書(shū)
- 10KV高壓線防護(hù)施工方案——杉木桿
- 對(duì)標(biāo)管理辦法(共7頁(yè))
- R語(yǔ)言入門(mén)教程(超經(jīng)典)
評(píng)論
0/150
提交評(píng)論