日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Struts第3天補(bǔ)充

 liuyang_inf 2014-08-26

 

說(shuō)我的博客文字太多,沒(méi)辦法就分兩篇發(fā)了,都是第3的知識(shí)點(diǎn),前面講了LookupDispatchAction,這里講解文件的上傳和下載!

文件的上傳

先是文件的上傳吧,因?yàn)橛辛松蟼鞑艜?huì)有下載,HOHO!

首先,還是action的書(shū)寫(xiě),示例:

  1. //文件上傳代碼   
  2. public class FileUpLoadAction extends Action{   
  3.     public ActionForward execute(ActionMapping mapping, ActionForm form,   
  4.             HttpServletRequest request, HttpServletResponse response)   
  5.             throws Exception {   
  6.         FilesForm ffs (FilesForm)form; //獲得formbean對(duì)象   
  7.         FormFile ff ffs.getMyfile(); //獲得到FormFile對(duì)象   
  8.         InputStream is ff.getInputStream();//獲得一個(gè)寫(xiě)入流   
  9.         OutputStream os new FileOutputStream("c:/"+new SimpleDateFormat("yyyy-MM-dd HH.mm.ss").format(new Date())+".png"); //以上傳時(shí)間為名字,避免文件名的重復(fù),并獲得一個(gè)輸出流   
  10.         byte [] by new byte[is.available()];//定義一個(gè)byte數(shù)組用了裝文件數(shù)據(jù)   
  11.         int len 0   
  12.         while((len=is.read(by))!= -1){//如果小于-1就是讀完了   
  13.             os.write(by,0,len); //從0開(kāi)始,讀到最后結(jié)束   
  14.         }   
  15.         is.close();   
  16.         os.flush();   
  17.         os.close();   
  18.         return mapping.findForward("success");   
  19.     

下來(lái)是FormBean的書(shū)寫(xiě):

  1. //FormBean的書(shū)寫(xiě),其中的myfile跟jsp頁(yè)面上的property值對(duì)應(yīng)!   
  2. public class FilesForm extends ActionForm {   
  3.     private FormFile myfile;   
  4.     public FormFile getMyfile() {   
  5.         return myfile;   
  6.       
  7.     public void setMyfile(FormFile myfile) {   
  8.         this.myfile myfile;   
  9.     }   
  10.  

接著是配置文件的配置:

  1.  <!--FormBean的配置-->  
  2.  <form-beans>  
  3.     <form-bean name="files" type="com.lovo.form.FilesForm"></form-bean>  
  4.  </form-beans>  
  5.   
  6. <!--Action的配置-->  
  7. <action path="/file" type="com.lovo.action.FileUpLoadAction" name="files" validate="false">  
  8.         <forward name="success" path="/success.jsp"></forward>  
  9. </action>  

這里的配置跟一個(gè)普通的action和formbean的配置沒(méi)有什么區(qū)別!

然后是jsp頁(yè)面的書(shū)寫(xiě):

<html:form action="file.do" method="post" enctype="multipart/form-data">  

   <html:file property="myfile"></html:file>  

   <html:submit value="上傳"></html:submit>  

</html:form> 

提示:form的enctype="multipart/form-data" 必須配置,并且,Mehtod必須是post類型

<html:file property="myfile"></html:file>  的property的值為formbean里面的屬性名!

文件的下載

文件的下載在Struts中提供了一個(gè)內(nèi)置的實(shí)現(xiàn)類也就是DownloadAction這個(gè)類,下面我們來(lái)書(shū)寫(xiě)一個(gè)Action來(lái)繼承這個(gè)類代碼如下:

  1. //文件的下載 繼承DownloadAction并實(shí)現(xiàn)getStreamInfo方法   
  2. public class FileDownAction extends DownloadAction   
  3.     protected StreamInfo getStreamInfo(ActionMapping mapping, ActionForm form,   
  4.             HttpServletRequest request, HttpServletResponse response)   
  5.             throws Exception {   
  6.         response.setContentType("application/x-download");//設(shè)置response的meta的類型為下載類型,這樣瀏覽器才會(huì)彈出保持對(duì)話框   
  7.         response.setHeader("Content-Disposition""attachment;filename=" "mm.png");//設(shè)置響應(yīng)頭,第一個(gè)參數(shù)為設(shè)置文件的默認(rèn)名,第二個(gè)參數(shù)是目的是用戶下載(保存文件)給出一個(gè)文件的默認(rèn)的具體名字   
  8.         StreamInfo si new FileStreamInfo("image/png",new File("c:/mm.png"));//因?yàn)镾treamInfo 是一個(gè)接口,那么來(lái)創(chuàng)建它的實(shí)現(xiàn)類FileStreamInfo,第一個(gè)參數(shù)是文件類型,第二個(gè)參數(shù)是文件在服務(wù)器上的的保持位置,這里最好是具體的文件位置
  9.         return si;//返回StreamInfo    
  10.           
  11.  

action的配置就較為簡(jiǎn)單了,也不需要formbean的參與代碼如下:

<action path="/down" type="com.lovo.action.FileDownAction" ></action>  

這里Action的配置就不做講解了!

最后是JSP的書(shū)寫(xiě),也很簡(jiǎn)單:

<a href="down.do">下載</a> 

這樣就可以完成下載了!

好了,今天的知識(shí)點(diǎn)先總結(jié)到此!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多