struts2 action 文件下载的配置
来源:互联网 发布:兼职 大数据 英文 翻译 编辑:程序博客网 时间:2024/04/30 08:53
1、客户端jsp请求Actin
- <%@
page language="java"import="java.util.*" pageEncoding="UTF-8"%> - <%
-
String = request.getContextPath(); -
String = request.getScheme()+ "://" -
+ request.getServerName() + ":" + request.getServerPort() -
+ path + "/"; - %>
-
- <!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" -
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" - <html>
-
-
-
name="website" content="http://www.crazyit.org" /> -
http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -
-
-
-
-
Struts2的文件下载 -
-
-
-
下载Struts2的Logo: -
href="download.action">下载图形文件</a> -
-
-
下载Struts2的Logo的压缩文件: -
href="download2.action">下载压缩文件</a> -
-
-
- </html>
2、Action处理
Struts2的文件下载Action与普通的Action并没有太大的不同,仅仅是该Action需要提供一个返回InputStream流的方法,该输入流代表了被下载文件的入口。该Action类的代码如下:
- package
com.lbx.action; -
- import
java.io.InputStream; -
- import
org.apache.struts2.ServletActionContext; -
- import
com.opensymphony.xwork2.ActionSupport; -
- @SuppressWarnings("serial")
- public
class FileDownloadAction extendsActionSupport{ -
-
String inputPath; -
-
-
void setInputPath(String inputPath) { -
= inputPath; -
} -
-
-
InputStream throwsgetTargetFile() Exception{ -
ServletActionContext.getServletContext() -
.getResourceAsStream(inputPath); -
} -
- }
从上面的Action中看到,该Action中包含了一个getTargetFile()方法,该方法返回一个InputStream输入流,这个输入流返回的是下载目标文件的入口。该方法的方法名为getTargetFile,表明该Action有一个targetFile属性来返回下载文件。
3、struts.xml配置
配置该文件下载的Action与配置普通的Action并没有太大的不同,需要在配置普通Action的基础之上,在加上额外的download的拦截器引用。
除此之外,关键是需要配置一个类型为stream的结果,配置stream类型的结果时需要指定如下四个属性:
contentType:指定被下载文件的文件类型。
inputName:指定被下载文件的入口输入流。
contentDisposition:指定下载的文件名。
bufferSize:指定下载文件时的缓冲大小。
因为stream结果类型的逻辑视图是返回给客户端一个输入流,因此无需指定location属性。
提示:配置stream类型的结果时,因为无需指定实际的显示的物理资源,所以无需指定location属性,只需要指定inputName属性,该属性指向被下载文件。
- <?xml
version="1.0" encoding="UTF-8"?> - <!DOCTYPE
struts PUBLIC -
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" -
"http://struts.apache.org/dtds/struts-2.1.dtd" - <struts>
-
-
name="struts.i18n.encoding" value="UTF-8"/> -
-
name="lee" extends="struts-default"> -
-
name="download" class="com.lbx.action.FileDownloadAction"> -
指定被下载资源的位置 --> -
name="inputPath">\images\Java.gif</param> -
配置结果类型为stream的结果 --> -
name="success" type="stream"> -
指定下载文件的文件类型 --> -
name="contentType">image/gif</param> -
指定由getTargetFile()方法返回被下载文件的InputStream --> -
name="inputName">targetFile</param> -
name="contentDisposition">filename="crazyit.gif"</param> -
指定下载文件的缓冲大小 --> -
name="bufferSize">4096</param> -
-
-
-
name="download2" class="com.lbx.action.FileDownloadAction"> -
定义被下载文件的物理资源 --> -
name="inputPath">\images\crazyit.zip</param> -
name="success" type="stream"> -
指定下载文件的文件类型 --> -
name="contentType">application/zip</param> -
指定由getTargetFile()方法返回被下载文件的InputStream --> -
name="inputName">targetFile</param> -
name="contentDisposition">filename="crazyit.zip"</param> -
指定下载文件的缓冲大小 --> -
name="bufferSize">4096</param> -
-
-
-
- </struts>
转自:http://blog.sina.com.cn/s/blog_8c38b8b701014wi9.html
- struts2 action 文件下载的配置
- Struts2下载文件时的Action的配置
- Struts2 文件下载Action及Struts.xml配置
- STRUTS2的Action配置
- struts2的Action配置
- struts2的action配置
- struts2的Action配置
- 关于struts2下载文件后再跳传到别的Action的问题
- 【Struts2文件下载】struts.xml文件中配置action,访问路径问题
- Struts2用action方式实现文件下载
- Struts2.0 xml文件的配置(package,namespace,action)
- Struts2.0 xml文件的配置(package,namespace,action)
- struts2配置Action范围的国际化资源文件
- struts2 action跳转action 的配置方法
- struts2的默认action配置
- struts2 action result 的配置
- Struts2通用的action 配置
- Struts2里Action的配置
- accumulate everyday:grep()函数
- Basic view
- 陌陌,该甩掉你“约炮”的帽子了
- 不是职业规划的职业规划
- 简述java中的final、finally、finalize的差别
- struts2 action 文件下载的配置
- 【转】ArcGIS Engine ITable 与System.DataTable相互转换
- MsiQueryProductState
- UVA 10254 - The Priest Mathematician(规律)
- 2013年美国开发者薪资调查报告
- python 字符串前加r
- [HGE]-源码分析-14 system (c)
- Hibernate实现分页和综合查询详解
- C#客户端 C++服务端 乱码问题