`
Action-人生
  • 浏览: 104955 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

struts2文件下载及 <param name="inputName">inputStream</param>的理解

 
阅读更多
struts2文件下载及 <param name="inputName">inputStream</param>的理解

//来自于wnczwl369


01.<SPAN style="FONT-SIZE: 16px"><?xml version="1.0" encoding="UTF-8" ?>  
02.<!DOCTYPE struts PUBLIC  
03.    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
04.    "http://struts.apache.org/dtds/struts-2.0.dtd">  
05.  
06.<struts>  
07.    <constant name="struts.enable.DynamicMethodInvocation" value="false" />  
08.    <constant name="struts.devMode" value="true" />  
09.  
10.    <package name="app14a" extends="struts-default">  
11.        <action name="Menu">  
12.            <result>/jsp/Menu.jsp</result>  
13.        </action>  
14.        <action name="ViewCss" class="app14a.FileDownloadAction">  
15.            <result name="success" type="stream">  
16.                <param name="inputName">inputStream</param>  
17.                <param name="contentType">text/css</param>  
18.                <param name="contentDisposition">filename="main11.css"</param>  
19.                <param name="bufferSize">2048</param>  
20.            </result>  
21.        </action>  
22.        <action name="DownloadCss" class="app14a.FileDownloadAction">  
23.            <result name="success" type="stream">  
24.                <param name="inputName">inputStream</param>  
25.                <param name="contentType">application/octet-stream</param>  
26.                <param name="contentDisposition">filename="main111222.css"</param>  
27.                <param name="bufferSize">2048</param>  
28.            </result>  
29.        </action>  
30.    </package>  
31.</struts></SPAN>  



action特殊的地方在于result的类型是一个流(stream),配置stream类型的结果时,因为无需指定实际的显示的物理资源,所以无需指定location属性,只需要指定inputName属性,该属性指向被下载文件的来源,对应着Action类中的某个属性,类型为InputStream,,struts2会寻找一个返回类型为InputStream的方法getInputStream()(方法名最好为getInputStream,有人说此方法名可以为别的可能需要与struts.xml中的inputName保存一致下面有解释,不过我实验的结果不是这样,须为getInputStream,可能是org.apache.struts2.dispatcher.ResultStream类限制造成,感兴趣的可以看看此类的源码,就会明白的),得到InputStream。

    另一种理解:action中定义一个返回InputStream的方法,该方法作为被下载文件的入口,且需要配置stream类型结果时指定inputName参数,inputName参数的值就是方法去掉get前缀、首字母小写的字符串。


下面则列出了和下载有关的一些参数列表:

参数说明
contentType
内容类型,和互联网MIME标准中的规定类型一致,例如text/plain代表纯文本,text/xml表示XML,image/gif代表GIF图片,image/jpeg代表JPG图片


inputName
下载文件的来源流,对应着action类中某个类型为Inputstream的属性名,例如取值为inputStream的属性需要编写getInputStream()方法


contentDisposition
文件下载的处理方式,包括内联(inline)和附件(attachment)两种方式,而附件方式会弹出文件保存对话框,否则浏览器会尝试直接显示文件。取值为:


attachment;filename="struts2.txt",表示文件下载的时候保存的名字应为struts2.txt。如果直接写filename="struts2.txt",那么默认情况是代表inline,浏览器会尝试自动打开它,等价于这样的写法:inline; filename="struts2.txt"


bufferSize
下载缓冲区的大小
分享到:
评论

相关推荐

    Struts2中实现文件下载(修正中文问题).pdf

    &lt;param name="inputName"&gt;inputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment;filename="struts2中文 .txt"&lt;/param&gt; &lt;param name="bufferSize"&gt;4096&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; &lt;!-- 更多...

    Struts 2中实现文件下载

    &lt;param name="inputName"&gt;inputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment;filename="struts2 中文.txt"&lt;/param&gt; &lt;param name="bufferSize"&gt;4096&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; ``` 在上面的...

    struts2上传下载

    &lt;param name="inputName"&gt;inputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment; filename="${filename}"&lt;/param&gt; &lt;param name="bufferSize"&gt;4096&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; &lt;/package&gt; ``` ...

    struts2 上传下载模板

    &lt;param name="inputName"&gt;inputStream&lt;/param&gt; &lt;param name="contentType"&gt;application/octet-stream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment;filename="{filename}"&lt;/param&gt; &lt;/result&gt; &lt;/action&gt;...

    struts2实现上传下载,简单易理解

    &lt;param name="inputName"&gt;fileInputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment;filename=${fileName}&lt;/param&gt; &lt;param name="bufferSize"&gt;1024&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; &lt;/package&gt; ``` ...

    struts2学习笔记十二(第12讲.Struts2的文件上传和下载)

    &lt;param name="inputName"&gt;inputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment; filename="${fileName}"&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; ``` 当用户访问下载Action时,Struts2将根据配置读取文件...

    struts2上传下载实例

    &lt;param name="inputName"&gt;inputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment;filename="${fileName}"&lt;/param&gt; &lt;param name="bufferSize"&gt;1024&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; ``` 这个"struts2_...

    Struts框架文件上传下载案例

    &lt;param name="inputName"&gt;fileInputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment;filename="${fileName}"&lt;/param&gt; &lt;param name="bufferSize"&gt;1024&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; &lt;/package&gt; `...

    Struts2学习资源Result part1.rar

    &lt;param name="inputName"&gt;fileInputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment; filename="example.txt"&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; ``` 这里,`fileInputStream`是Action类中用于读取...

    struts2实现文件下载实例源代码

    &lt;param name="inputName"&gt;inputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment;filename="${fileName}"&lt;/param&gt; &lt;param name="bufferSize"&gt;1024&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; &lt;/package&gt; ``` 3....

    struts2 文件上传下载

    &lt;param name="inputName"&gt;fileInputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment;filename="${fileName}"&lt;/param&gt; &lt;param name="bufferSize"&gt;1024&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; ``` #### 2. ...

    struts2.0文件的上传与下载

    &lt;param name="inputName"&gt;file&lt;/param&gt; &lt;param name="bufferSize"&gt;1024&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; &lt;/package&gt; ``` 3. **Action处理**:创建一个Action类,如`UploadAction`,并重写`execute`方法来处理...

    struts2实现文件下载

    ### Struts2实现文件下载:深入解析与代码实践 #### 引言 在Web应用开发中,文件的上传与下载是常见的功能需求。Struts2框架提供了强大的支持,使得开发者能够轻松实现这些功能。本文将重点介绍Struts2中文件下载...

    struts2 文件上传与下载

    &lt;param name="inputName"&gt;stream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment;filename="${fileName}"&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; ``` 在这个例子中,`contentDisposition`属性用于设置HTTP响应头,...

    struts2文件上传下载示例

    &lt;param name="inputName"&gt;fileStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment;filename="${fileName}"&lt;/param&gt; &lt;param name="bufferSize"&gt;1024&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; ``` - Action类:...

    struts2中的文件上传和下载

    &lt;param name="inputName"&gt;fileInputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment; filename="${fileName}"&lt;/param&gt; &lt;param name="bufferSize"&gt;1024&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; ``` 2. **...

    Struts2上传下载组件

    &lt;param name="inputName"&gt;inputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment;filename="${fileName}"&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; ``` 在实际开发中,你需要考虑安全性问题,比如防止恶意文件...

    Struts文件上传/下载,支持多文件上传

    &lt;param name="inputName"&gt;fileInputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment;filename="${fileName}"&lt;/param&gt; &lt;param name="bufferSize"&gt;1024&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; ``` 2. 创建...

    Struts2上传和下载Action配置

    &lt;param name="inputName"&gt;inputStream&lt;/param&gt; &lt;param name="contentDisposition"&gt;attachment; filename="${filename}"&lt;/param&gt; &lt;/result&gt; &lt;/action&gt; &lt;/package&gt; &lt;/struts&gt; ``` 以上配置确保了“upload”请求...

Global site tag (gtag.js) - Google Analytics