版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
Struts2配置詳解第六章回顧與作業(yè)點評使用Struts2開發(fā)程序的基本步驟是什么?Struts2中如何獲取Servlet的session對象?Struts2表單標(biāo)簽和普通HTML表單標(biāo)簽有什么不同之處?預(yù)習(xí)檢查Struts2Result元素的作用是什么?Struts2中開發(fā)一個Action有幾種方法?Struts2中如何解決中文亂碼問題?本章任務(wù)實現(xiàn)租房網(wǎng)中文亂碼的解決實現(xiàn)租房網(wǎng)用戶注冊實現(xiàn)租房網(wǎng)房屋信息的發(fā)布本章目標(biāo)掌握Struts2的基本架構(gòu)掌握struts.xml中的各項內(nèi)容掌握action元素與result元素的配置掌握Struts2中文亂碼的解決Struts2基本結(jié)構(gòu)4-1租房網(wǎng)登錄程序運行流程圖login.jsp核心控制器ActionResultmanager.jspStruts2基本結(jié)構(gòu)4-2核心控制器需要在web.xml中進行配置對框架進行初始化,以及處理所有的請求<filter> <filter-name>struts2</filter-name> <filter-class>
org.apache.struts2.dispatcher.ng.filter. StrutsPrepareAndExecuteFilter </filter-class></filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern></filter-mapping>Struts2.0版本的核心控制器為org.apache.struts2.dispatcher.FilterDispatcherStruts2基本結(jié)構(gòu)4-3Action開發(fā)Action實現(xiàn)Action接口繼承ActionSupport類普通的Java類配置Action…<struts> <packagename="default"namespace="/"extends="struts-default">
<actionname="login"class="cn.jbit.hrent.action.LoginAction">
<resultname="success">/page/manage.jsp</result> <resultname="input">/page/login.jsp</result> <resultname="error">/page/error.jsp</result> </action> </package></struts>Struts2基本結(jié)構(gòu)4-4Result作用:調(diào)度視圖以哪種形式體現(xiàn)給客戶端(Action處理結(jié)束后,系統(tǒng)下一步將要做什么)name屬性表示result邏輯名,result元素的值指定對應(yīng)的實際資源位置…<struts> <packagename="default"namespace="/"extends="struts-default"> <actionname="login"class="cn.jbit.hrent.action.LoginAction"> <resultname="success">/page/manage.jsp</result> <resultname="input">/page/login.jsp</result> <resultname="error">/page/error.jsp</result>
</action> </package></struts>Struts2配置文件4-1struts.xml核心配置文件,主要負責(zé)管理Action通常放在WEB-INF/classes目錄下,在該目錄下的struts.xml文件可以被自動加載…<struts> <constantname=""value=""/> <packagename=""namespace=""extends=""> <actionname=""class=""> <resultname=""></result> </action> </package></struts>Struts2配置文件4-2struts.xmlconstant元素配置常量,可以改變Struts2框架的一些行為name屬性表示常量名稱,value屬性表示常量值 …<struts>
<constantname="struts.i18n.encoding"value="UTF-8"/>
<constantname="struts.ui.theme"value="simple"/>
<packagename=""namespace=""extends=""> <actionname=""class=""> <resultname=""></result> </action> </package></struts>Struts2配置文件4-3struts.xmlpackage元素包的作用:簡化維護工作,提高重用性包可以“繼承”已定義的包,并可以添加自己包的配置name屬性為必需的且唯一,用于指定包的名稱extends屬性指定要擴展的包namespace屬性定義該包中action的命名空間,為可選屬性…<struts> <constantname=""value=""/>
<packagename="default"namespace="/"extends="struts-default"> <actionname=""class=""> <resultname=""></result> </action>
</package></struts>除非有令人信服原因,自定義的包應(yīng)該總是擴展struts-default包Struts2配置文件4-4struts-default.xmlStruts2默認(rèn)配置文件,會自動加載struts-default包在struts-default.xml文件中定義struts-plugin.xmlStruts2插件使用的配置文件如果不開發(fā)插件,不需要編寫該配置文件加載順序struts-default.xml—>struts-plugin.xml —>struts.xml—>web.xml練習(xí)——租房網(wǎng)中文亂碼解決需求說明:解決租房網(wǎng)中文亂碼問題提示:<constantname="struts.i18n.encoding"value="UTF-8">完成時間:10分鐘Struts2
Action5-1Action的作用封裝工作單元數(shù)據(jù)轉(zhuǎn)移的場所返回結(jié)果字符串publicclassHelloWorldActionimplementsAction{ privateStringname="";
privateStringmessage=""; publicStringexecute(){
this.setMessage("Hello,"+this.getName()+"!"); returnSUCCESS; } //...省略setter/getter方法}Struts2
Action5-2動態(tài)方法調(diào)用作用:減少Action數(shù)量使用:actionName!methodName.action禁用:將屬性strutsenableDynamicMethodInvocation設(shè)置為falsepublicclassUserActionimplementsAction{ … publicStringlogin(){
… } publicStringregister(){
… }}<actionname="user"class="cn.jbit.houserent.action.UserAction"> <resultname="login">/page/manage.jsp</result> <resultname="register">/page/success.jsp</result> <resultname="login_input">/page/login.jsp</result> <resultname="register_input">/page/register.jsp</result> <resultname="error">/page/error.jsp</result></action>調(diào)用UserAction的login()方法
/user!login.action
調(diào)用UserAction的register()方法
/user!register.action
演示示例:動態(tài)方法調(diào)用Struts2
Action5-3method屬性優(yōu)點:避免動態(tài)方法調(diào)用的安全隱患缺陷:導(dǎo)致大量的Action配置publicclassUserActionimplementsAction{ … publicStringlogin(){
… } publicStringregister(){
… }}<actionname="login" class="cn.jbit.houserent.action.UserAction"method="login"> <result>/page/manage.jsp</result> <resultname="input">/page/login.jsp</result> <resultname="error">/page/error.jsp</result></action><actionname="register" class="cn.jbit.houserent.action.UserAction"method="register"> <result>/page/success.jsp</result> <resultname="input">/page/register.jsp</result> <resultname="error">/page/error.jsp</result></action>調(diào)用UserAction的login()方法
/login.action
調(diào)用UserAction的register()方法
/register.action
演示示例:使用method屬性Struts2
Action5-4通配符(*)的使用另一種形式的動態(tài)方法調(diào)用<actionname="*User" class="cn.jbit.houserent.action.UserAction"method="{1}"> <result>/page/{1}_success.jsp</result> <resultname="input">/page/{1}.jsp</result> <resultname="error">/page/error.jsp</result></action>method="login"/page/login_success.jsp/page/login.jsp
/loginUser.action
/registerUser.action
method=“register"/page/register_success.jsp/page/register.jsp演示示例:使用通配符配置ActionStruts2
Action5-5配置默認(rèn)Action如果沒有一個Action匹配請求,默認(rèn)Action將被執(zhí)行通過<default-action-ref…/>元素配置默認(rèn)Action<struts>
<default-action-refname="defaultAction"/> <packagename="default"extends="struts-default"> <actionname="defaultAction"> <result>error.jsp</result> </action> </package></struts>如果請求的Action不存在,將轉(zhuǎn)發(fā)到error.jsp省略class屬性,將使用ActionSupport類練習(xí)——同一Action處理登錄和注冊需求說明:升級租房網(wǎng),使用同一Action處理用戶登錄和注冊請求完成時間:20分鐘練習(xí)——增加默認(rèn)的Action需求說明:升級租房網(wǎng),增加默認(rèn)Action完成時間:10分鐘共性問題集中講解常見調(diào)試問題及解決辦法代碼規(guī)范問題共性問題集中講解Result配置3-1常用結(jié)果類型dispatcher類型默認(rèn)結(jié)果類型,后臺使用RequestDispatcher()轉(zhuǎn)發(fā)請求redirect類型后臺使用的sendRedirect()將請求重定向至指定的URLredirectAction類型主要用于重定向到Action<actionname="login"class="cn.jbit.hrent.action.LoginAction"> <resultname="success"type="redirectAction">manage</result>
<resultname="error"type="redirect">error.jsp</result>
<resultname="input"type="dispatcher"
>login.jsp</result></action><actionname="manage"class=="cn.jbit.hrent.action.UserAction"
> …</action>Result配置3-2動態(tài)結(jié)果配置時不知道執(zhí)行后的結(jié)果是哪一個,運行時才知道哪個結(jié)果作為視圖顯示給用戶publicclassUserActionextendsActionSupport{ privateStringnextDispose; publicStringlogin(){ ...
if(user.isManager()){
nextDispose="manager"; }else{
nextDispose="common"; } returnSUCCESS; } publicStringgetNextDispose(){ returnnextDispose; } ...}<struts> <packagename="default"extends="struts-default"> <actionname="login" lass="cn.jbit.houserent.action.UserAction"method="login"> <resulttype="redirectAction">${nextDispose}</result> <resultname="error">/page/error.jsp</result> </action> <actionname="common" class="monUserAction"> … </action> <actionname="manage" class="cn.jbit.houserent.action.ManagerAction"> ... </action> </package></struts>nextDispose要在Action中存在,并且提供其getter方法演示示例:使用動態(tài)結(jié)果Result配置3-3全局結(jié)果全局結(jié)果可滿足一個包中多個Action共享一個結(jié)果<struts>
<default-action-refname="defaultAction"/> <packagename="default"extends="struts-default">
<global-results>
<resultname="error">/page/error.jsp</result>
<resultname="login"type="redirect">/page/login.jsp</result>
</global-results>
<actionname="login" class="cn.jbit.houserent.action.UserAction"method="login"> <re
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆廣東省七校聯(lián)合體物理高二第一學(xué)期期末經(jīng)典模擬試題含解析
- 云南省玉溪市江川一中2025屆物理高三上期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 甘肅省蘭州市第九中學(xué)2025屆物理高一第一學(xué)期期中綜合測試試題含解析
- 2025屆遼寧省凌源市高二物理第一學(xué)期期中調(diào)研試題含解析
- 江西省紅色七校 2025屆物理高三上期中學(xué)業(yè)水平測試模擬試題含解析
- 湖南省岳陽市第五中學(xué)等2025屆物理高三第一學(xué)期期中綜合測試試題含解析
- 2025屆福建閩侯第六中學(xué)高三物理第一學(xué)期期末學(xué)業(yè)水平測試模擬試題含解析
- 廣東省實驗中學(xué)2025屆物理高二上期末質(zhì)量檢測試題含解析
- 上海市通河中學(xué)2025屆物理高二第一學(xué)期期末學(xué)業(yè)水平測試試題含解析
- 2025屆湖南省醴陵一中、攸縣一中高二物理第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測模擬試題含解析
- 燃燒與爆炸理論課件
- 2022中考語文熱點聚焦:航天科技( 有答案)
- 第1章 復(fù)合材料概論
- 中藥材種植課件
- 大貨車安全隱患排查方案及流程
- 業(yè)務(wù)經(jīng)營弄虛作假專項治理心得體會范文
- 無人機飛行操作手冊
- 癌癥治療指南手冊
- 醫(yī)美行業(yè)發(fā)展趨勢
- 自發(fā)性腹膜炎的護理查房課件
- 2023年度中國游戲產(chǎn)業(yè)報告
評論
0/150
提交評論