版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
-1-掌握struts.xml文件主要元素的配置掌握Action的實(shí)現(xiàn)方式掌握Action對ActionContext的訪問方式掌握Action對ServletAPI的訪問方式掌握Action的配置方式及通配符配置掌握處理結(jié)果的流程掌握利用通配符動(dòng)態(tài)配置result掌握dispatcher、redirect和redirectAction等結(jié)果類型的使用掌握Struts2的異常處理機(jī)制及配置方式目標(biāo)-2-常量配置在perties文件中配置在struts.xml文件中配置在web.xml文件中配置示例:3.1-3-包配置Struts2中每個(gè)包就是由若干個(gè)Action、攔截器和攔截器引用組成的集合Struts2框架通過包來管理Action和攔截器等核心組件。使用包的好處就是把一組邏輯相關(guān)的Action和攔截器等組件組織在一起,從而便于管理<struts> <!--配置了一個(gè)name為login的包,該包繼承了struts-default包--> <packagename="login"extends="struts-default">
</package></struts>-4-命名空間配置命名空間用來解決Action名稱沖突的問題<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文件來包含其他的配置文件,從而使得配置文件更具有可讀性和可維護(hù)性。<struts> <!--管理員模塊--> <includefile="bookshop-admin.xml"/> <!--用戶管理--> <includefile="bookshop-user.xml"/> <!--產(chǎn)品管理模塊--> <includefile="bookshop-product.xml"/> <!--購物車模塊--> <includefile="bookshop-shoppingcart.xml"/></struts>-6-實(shí)現(xiàn)ActionPOJO實(shí)現(xiàn)方式 包含一個(gè)特定方法execute(),該方法沒有任何參數(shù),返回值為字符串類型實(shí)現(xiàn)Action接口
Action接口定義了SUCCESS、NONE、ERROR、INPUT和LOGIN等字符串常量,規(guī)范了execute()方法的返回值繼承ActionSupport
提供了許多默認(rèn)方法,包括獲取國際化信息的方法,數(shù)據(jù)校驗(yàn)的方法,默認(rèn)處理用戶請求的方法等。是Struts2缺省的Action處理類示例:3.7~3.9-7-使用ActionContext訪問ServletAPI使用ActionContext可以訪問ServletAPI示例:3.10方法描述Objectget(Objectkey)
該方法和HttpServletRequest的getAttribute(Stringname)方法類似MapgetApplication()返回一個(gè)Map對象,該對象模擬了Web應(yīng)用對應(yīng)的ServletContext對象ActionContextgetContext()獲取系統(tǒng)的ActionContext對象MapgetParameters()獲取所有的請求參數(shù),類似于調(diào)用HttpServletRequest對象的getParameterMap()方法MapgetSession()返回一個(gè)Map對象,該對象模擬了HttpSession對象voidsetApplication(Mapapplication)直接傳入一個(gè)Map對象,將該Map對象中的key-value對轉(zhuǎn)換成application的屬性名和屬性值voidsetSession(Mapsession)直接傳入一個(gè)Map對象,將該Map對象里的key-value對轉(zhuǎn)換成session的屬性名和屬性值-8-直接訪問ServletAPI-1方式1:實(shí)現(xiàn)Struts2提供的接口示例:3.11接口描述ServletContextAware實(shí)現(xiàn)該接口的Action可以直接訪問web應(yīng)用的ServletContext對象ServletRequestAware實(shí)現(xiàn)該接口的Action可以直接訪問用戶請求的HttpServletRequest對象ServletResponseAware實(shí)現(xiàn)該接口的Action可以直接訪問服務(wù)器響應(yīng)的HttpServletResponse對象-9-直接訪問ServletAPI-2方式2:使用ServletActionContext輔助類方法描述staticPageContextgetPageContext()取得web應(yīng)用的PageContext對象staticHttpServletRequestgetRequest()取得web應(yīng)用的HttpServletRequest對象staticHttpServletResponsegetResponse()取得web應(yīng)用的HttpServletResponse對象staticServletContextgetServletContext()取得web應(yīng)用的ServletContext對象-10-配置Action在struts.xml中配置Action示例3.12<packagename="counter"extends="struts-default"><!--配置處理請求的Action,其實(shí)現(xiàn)類為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”的形式來訪問Action
如“reg!del.action”表示訪問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類型結(jié)果類型描述chain結(jié)果類型用于進(jìn)行Action鏈?zhǔn)教幚韈hart結(jié)果類型用于整合JFreeChart技術(shù)dispatcher結(jié)果類型用于整合JSP技術(shù)freemarker結(jié)果類型用于整合FreeMarker技術(shù)httpheader結(jié)果類型用于控制特殊的HTTP行為jasper結(jié)果類型用于整合JasperReport報(bào)表技術(shù)jsf結(jié)果類型用于整合JSF技術(shù)redirect結(jié)果類型用于重定向到其他URLredirectAction結(jié)果類型用于重定向到其他的Actionstream結(jié)果類型用于向?yàn)g覽器返回InputStream,一般用于文件下載tiles結(jié)果類型用于整合Tiles技術(shù)velocity結(jié)果類型用于整合Velocity技術(shù)xslt結(jié)果類型用于整合XML/XSLT技術(shù)plainText結(jié)果類型用于顯示某個(gè)頁面的源代碼<result>元素使得邏輯視圖和物理視圖之間產(chǎn)生映射關(guān)系默認(rèn)類型是dispatcher示例:3.14-16-動(dòng)態(tài)result動(dòng)態(tài)result可以根據(jù)請求來動(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的異常處理是通過在struts.xml中配置<exception-mapping>元素來完成的,配置該元素時(shí)需要指定兩個(gè)屬性:exception:指定Action出現(xiàn)的異常所映射的異常類型result:指定Action拋出異常時(shí),系統(tǒng)轉(zhuǎn)入該屬性值對應(yīng)的action或者global-results中配置的result元素根據(jù)<exception-mapping>元素出現(xiàn)位置的不同,異常映射又分為兩種:局部異常映射:將<exception-mapping>元素作為<action>元素的子元素配置全局異常映射:將<exception-mapping>元素作為<global-exception-mappings>元素的子元素配置示例:3.16-19-Struts2框架以配置文件的方式來管理核心組件,允許方便的擴(kuò)展組件在struts.xml文件中通過配置常量來改變框架的默認(rèn)行為Struts2的包就是若干個(gè)Action、攔截器、攔截器引用組成的集合通過命名
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度城鎮(zhèn)土地使用權(quán)轉(zhuǎn)讓及配套設(shè)施建設(shè)合同協(xié)議3篇
- 二零二五年度小額貸款個(gè)人信用借款合同范本2篇
- 二零二五年度電子商務(wù)銷售結(jié)算合同3篇
- 二零二五年度建筑施工安全環(huán)保事故處理協(xié)議3篇
- 二零二五年度個(gè)人住宅買賣合同示范范本
- 酒店管理工作中的風(fēng)險(xiǎn)管控
- 醫(yī)院行業(yè)美工的醫(yī)療廣告
- 培訓(xùn)行業(yè)課程安全操作指南
- 電子工程師的領(lǐng)域探索
- 二零二五年度農(nóng)產(chǎn)品直銷銷售合同范本
- 《帶一本書去讀研:研究生關(guān)鍵學(xué)術(shù)技能快速入門》筆記
- 知識圖譜智慧樹知到答案2024年浙江大學(xué)
- 2024年度-美團(tuán)新騎手入門培訓(xùn)
- 高一數(shù)學(xué)寒假講義(新人教A專用)【復(fù)習(xí)】第05講 三角函數(shù)(學(xué)生卷)
- 農(nóng)村高中思想政治課時(shí)政教育研究的中期報(bào)告
- 醫(yī)院定崗定編方案文檔
- 4-熔化焊與熱切割作業(yè)基礎(chǔ)知識(一)
- 2023年200MW儲(chǔ)能電站儲(chǔ)能系統(tǒng)設(shè)計(jì)方案
- 個(gè)人安全與社會(huì)責(zé)任的基本知識概述
- 簡易勞務(wù)合同電子版
- 明代文學(xué)緒論
評論
0/150
提交評論