Struts2PPT6.ppt_第1頁
Struts2PPT6.ppt_第2頁
Struts2PPT6.ppt_第3頁
Struts2PPT6.ppt_第4頁
Struts2PPT6.ppt_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1,1,第六章,Struts2高級,2,目標(biāo),6.1 異常處理 6.2 文件上傳與下載(單文件與多文件上傳) 6.3 Action與JSON,2,3,異常處理,Struts2提供了一套非常完善的異常處理機(jī)制,action執(zhí)行過程中如果拋出異常,struts框架通過截攔器捕獲,并根據(jù)配置跳轉(zhuǎn)到錯誤顯示頁面通知用戶. Action的方法向上拋出Exception,意味著Action中拋出的所有異常都可以被處理. 不需要在代碼中處理異常,配置即可,3,4,異常處理操作步驟,操作步驟 在Action中拋出異常 在struts.xml文件中配置異常類對應(yīng)的異常顯示頁面 在顯示頁面中顯示異常信息,5,在A

2、ction中拋出異常(模擬),6,配置異常類對應(yīng)的異常顯示頁面,如果Action拋出NullPointerException, UnsupportedOperationException, SQLException異常,則跳轉(zhuǎn)到e1.jsp頁面顯示異常,7,異常配置有兩種類型 局部異常:只對當(dāng)前Action有效,上頁中的就是局部異常 全局異常:對所有Action有效.,8,顯示異常信息,9,文件上傳,struts2并沒有定義自己的文件解析器,而是采用了其他的開源組件 支持三種文件上傳組件 # struts.multipart.parser=cos # struts.multipart.pars

3、er=pell struts.multipart.parser=jakarta 其中jakarta是默認(rèn)支持的方式 如果要使用其他兩種,必須將對應(yīng)的庫文件導(dǎo)入工程,并修改perties文件 不管使用哪一種方式上傳,代碼沒有區(qū)別 通過FileUploadInterceptor截攔器完成,10,文件上傳要點(1),form標(biāo)簽設(shè)置enctype=multipart/form-data“ 文件上傳后的文件以File表示(如File upload) 上傳的文件信息保存方式 文件名:xxxFileName,如:uploadFileName 文件類型:xxxContentType,如u

4、ploadContentType 相關(guān)屬性 struts.multipart.saveDir=g:/ struts.multipart.maxSize=2048,11,文件上傳要點(2),文件不會自動保存到服務(wù)器,必須在Action中通過流操作保存,典型的代碼段如下: FileOutputStream fos = new FileOutputStream(this.savePath + this.file1FileName); FileInputStream fis = new FileInputStream(this.file1); byte bs = new byte1024; int r

5、eal = fis.read(bs); while(real 0) fos.write(bs, 0, real); real = fis.read(bs); fos.close(); fis.close();,12,上傳示例-Action,public class FileuploadAction extends ActionSupport private String desc; private File file1; private String file1FileName; private String savePath = G: + System.getProperty(file.se

6、parator); public String execute()throws Exception FileOutputStream fos = new FileOutputStream(this.savePath + this.file1FileName); FileInputStream fis = new FileInputStream(this.file1); byte bs = new byte1024; int real = fis.read(bs); while(real 0) fos.write(bs, 0, real); real = fis.read(bs); fos.cl

7、ose();fis.close(); return null; ,13,上傳示例jsp頁面, ,14,文件過濾,上傳文件時可能要限制文件擴(kuò)展名或文件大小,這叫文件過濾. 文件過濾通過FileUploadInterceptor截攔器來實現(xiàn). 如果文件過濾失敗,系統(tǒng)自動轉(zhuǎn)入input視圖. 典型配置 /fileupload.jsp 5485760 .exe,.html ,15,注意,文件大小先后經(jīng)過兩重驗證 perties(默認(rèn)2M左右) struts.multipart.maxSize=91344570 5485760,16,文件上傳出錯信息,在classpath下創(chuàng)建tes

8、tmessages_zh_CN.properties文件,輸入下面內(nèi)容 struts.messages.error.file.too.large=u6587u4EF6u592Au5927 struts.messages.error.file.extension.not.allowed=u6587u4EF6u7C7Bu578Bu4E0Du5339u914D,17,多文件上傳,采用數(shù)組即可,18,文件下載,文件下載其實就是將服務(wù)器上的文件以流的形式傳送給客戶端瀏覽器,并通知瀏覽器如何處理文件流. 通過response對象通知瀏覽器的處理方式為下載 response.setHeader(Conten

9、t-disposition, attachment; filename= + utf8File);,19,下載代碼,20,Action與JSON,struts2-json-plugin-.jar插件能讓客戶向Action發(fā)送ajax請求,Action返回json格式的字符,在瀏覽器端再轉(zhuǎn)換成json對象進(jìn)行處理. 注意 1.將struts2-json-plugin-.jar導(dǎo)入工程 2.package的extends的值必須為json-default(可以放在一個單獨(dú)的package中) 3.Action處理請求的方法的返回值必須為” success” 4.返回到客

10、戶端的值由Action的屬性組成,可以包含基本類型,數(shù)組,集合和Map. 5.Action必須配置一個name為json的result,無需指定路徑,如:,21,示例-Action,public class Json2Action private String a; private String b; private String c; public String execute() throws Exception c = a + b + 得到結(jié)果啦,哈哈哈.; return success; ,22,配置, ,23,JSON,JSON(format=yyyy-MM-dd, name=birth) 用在屬性的g

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論