課程總結(jié)
1.Action的三種編寫方式
1、實現(xiàn)actoin接口 2院仿、繼承ActionSupport 3着逐、自定義pojo對象作為action
2.Action調(diào)用方法
1、execute默認(rèn)方法調(diào)用?? 2意蛀、通過method屬性指定調(diào)用方法? 3耸别、通過通配符調(diào)用指定方法? 4、通過動態(tài)方法調(diào)用:先開啟動態(tài)方法調(diào)用的常量
3.Action方法servlet相關(guān)API1县钥、解耦方式調(diào)用servlet API:ActionContext2秀姐、接口注入方式調(diào)用servlet API:需要實現(xiàn)各種servlet相關(guān)的接口3、靜態(tài)方法調(diào)用servlet API:ServletActionContext
4.結(jié)果集的使用1若贮、分成全局結(jié)果集和局部結(jié)果集2省有、結(jié)果集的類型:dispatcher\redirect\redirectAction\stream\json
5.屬性驅(qū)動屬性驅(qū)動方式一:通過action中成員變量的屬性的setter方法進(jìn)行參數(shù)的傳遞封裝屬性驅(qū)動方式二:通過獨立的model對象,在action中定義該對象的屬性谴麦,通過對象的setter和getter進(jìn)行參數(shù)的傳遞封裝蠢沿,并且頁面需要是使用ognl表達(dá)式提交數(shù)據(jù)。模型驅(qū)動:實現(xiàn)ModelDriven接口匾效,復(fù)習(xí)getModel(),并且需要初始化model對象—new User();
6.請求參數(shù)的合法性校驗機(jī)制1舷蟀、手動代碼校驗:全局和局部需要action繼承ActionSupport,目的是為了實現(xiàn)validateable接口(進(jìn)行手動代碼校驗)和ValidationAware(添加錯誤信息用的)如果全局和局部校驗都存在的話,校驗順序是:先局部再全局2面哼、xml校驗:全局和局部全局的命名規(guī)則:action類名-validation.xml如果action使用的是屬性驅(qū)動方式一:必須提供屬性的getter方法野宜,該方法就是給xml校驗文件提供參數(shù)用的局部的命名規(guī)則:action類名-action標(biāo)簽中的name的屬性值-validation.xml如果action使用的是屬性驅(qū)動方式一:必須提供屬性的getter方法,該方法就是給xml校驗文件提供參數(shù)用的Xml校驗的順序是:先全局再局部Xml校驗的優(yōu)勢是:校驗規(guī)則大部分已實現(xiàn)。
7.國際化信息機(jī)制全局的命名方式:message_zh_CN.propertiesmessage_zh.propertiesmessage.properties他們的讀取順序是:從上往下依次查找包范圍的國際化文件:package.propertiesAction范圍的國際化文件:action類名.properties使用國際化信息機(jī)制需要先開啟國際化的常量配置。國際化信息機(jī)制使用最多的場景就是提供錯誤信息续室。
8.攔截器自定義攔截器四步走:1、自定義攔截器2虎敦、自定義攔截器棧3游岳、將默認(rèn)的攔截器棧和自定義的攔截器加入到自定義的攔截器棧4、使用自定義的攔截器棧覆蓋默認(rèn)的攔截器棧一般自定義攔截器是繼承MethodFilterInterceptor:可以配置指定攔截或者不攔截某個方法
9.Ognl表達(dá)式1其徙、操作對象2吭历、可以操作對象的實例方法3、可以操作靜態(tài)方法需要開啟靜態(tài)方法調(diào)用的常量4擂橘、可以操作集合5晌区、可以操作表達(dá)式6、可以操作值棧
10.值棧概述操作值棧主要就是操作值棧中的root棧和map棧(context)Root棧是一個list集合Map棧是一個map集合(context)
11.操作值棧的方式Root棧的操作:1通贞、存值:push--將數(shù)據(jù)壓入棧頂朗若,一般都是操作棧頂數(shù)據(jù)取值:、:該取值方式是從棧頂往下查找到map棧昌罩,期間查找到的第一個數(shù)據(jù)進(jìn)行返回.Map棧的操作:存值:put—將數(shù)據(jù)存入到map棧取值:通過#key直接從map棧獲取數(shù)據(jù)Action屬性的存值:通過action中的屬性值哭懈,直接存入到值棧。
12.各類符號的用fa
13.Iterator標(biāo)簽的用法
14.上傳
客戶端:三個必須
Post方法提交
Mime編碼類型:multipart/form-data
Input標(biāo)簽的type屬性必須是File類型提交數(shù)據(jù)
Action中接收上傳的文件
Private File upload茎用;? upload必須和上傳標(biāo)簽中的name屬性值同名.
Private String uploadContentType:獲取上傳文件的mime類型
Private String uploadFileName:獲取上傳文件的名稱
可以在struts.xml中設(shè)置文件的文件的限制:大小和文件類型
15.下載
一個流:輸入流遣总,用來讀取需要下載的文件用的
兩個頭:
文件的mime類型-contentType
瀏覽器以哪種方式進(jìn)行下載: contentDisposition
只需要將需要下載的文件的輸入流存入到值棧轨功,值棧的key必須是inputStream.
只需要將contentType也存入值棧旭斥,值棧的key必須是contentType
只需要將contentDisposition也存入值棧,值棧的key必須是contentDisposition