struts2文件下载及 <param name="inputName">inputStream</param>的理解
来源:互联网 发布:淘宝感谢卡内容简短 编辑:程序博客网 时间:2024/06/05 14:13
转自:http://blog.csdn.net/wnczwl369/article/details/7483290
转自:http://hi.baidu.com/c2_sun/item/934a542518c6ecc5a5275aad
struts.xml文件配置:
1 <span style="font-size:16px;"><?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4 "http://struts.apache.org/dtds/struts-2.0.dtd"> 5 6 <struts> 7 <constant name="struts.enable.DynamicMethodInvocation" value="false" /> 8 <constant name="struts.devMode" value="true" /> 9 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前缀、首字母小写的字符串。
下面则列出了和下载有关的一些参数列表:
配置文件详解:
1、type 为 stream 应用 StreamResult 处理
2、contentType
内容类型,和互联网MIME标准中的规定类型一致,例如text/plain代表纯文本,text/xml表示XML,image/gif代表GIF图片,image/jpeg代表JPG图片
3、inputName
下载文件的来源流,对应着action类中某个类型为Inputstream的属性名,例如取值为inputStream的属性需要编写getInputStream()方法
4、contentDisposition
文件下载的处理方式,包括内联(inline)和附件(attachment)两种方式,而附件方式会弹出文件保存对话框,否则浏览器会尝试直接显示文件。取值为:
attachment;filename="struts2.txt",表示文件下载的时候保存的名字应为struts2.txt。如果直接写filename="struts2.txt",那么默认情况是代表inline,浏览器会尝试自动打开它,等价于这样的写法:inline;filename="struts2.txt"
5、bufferSize
下载缓冲区的大小
- struts2文件下载及 <param name="inputName">inputStream</param>的理解
- struts2文件下载及 <param name="inputName">inputStream</param>的理解
- struts2文件下载及 <param name="inputName">inputStream</param>的理解
- struts2文件下载及 <param name="inputName">inputStream</param>的理解
- struts2文件下载及 <param name="inputName">inputStream</param>的理解
- struts2文件下载及 <param name="inputName">inputStream</param>的理解
- struts2文件下载及 <param name="inputName">inputStream</param>的理解
- struts2文件下载错误(<param name="inputName"> tag specified for this action.”)(实验楼)
- param=(function(obj){})(param);的理解
- 关于struts2 result param name的详解
- <param name="aliases"></param>拦截器的参数
- Struts2 Annotation的<param-name>actionPackages</param-name>讲解
- Struts2配置的Param
- Struts2 param的作用
- /// <summary> /// 搜索 /// </summary> /// <param name="k"></param> /// <param name="cid"></param> ///
- Struts2 - result标签的param标签的name属性用法。
- Struts2 **-validation.xml <param name="expression">正则验证不起作用
- <param name="root">Field</param>Action的值与前台获取不对
- boost循环队列 circular_buffer
- iOS截屏功能的实现
- composer illuminate/database 独立使用Eloquent ORM 处理事务
- 基于opencv的单张图像去雾算法(二)
- 10.19
- struts2文件下载及 <param name="inputName">inputStream</param>的理解
- POI通用导出Excel数据(包括样式设计)
- 实战Linux服务器安全加固培训
- AC自动机fail边的理解
- Error: The processing instruction target matching “[xX][mM][lL]” is not allowed
- 深入理解javascript原型和闭包(7)——原型的灵活性
- php常用算法
- 路由配置之谜
- SpringBootCLI 安装