admin管理员组文章数量:1538169
2024年6月13日发(作者:)
struts2下载(使用配置文件)
1. 第一步
2.
3. 4. xmlns="/xml/ns/j2ee" 5. xmlns:xsi="/2001/XMLSchema-instance" 6. xsi:schemaLocation="/xml/ns/j2ee 7. /xml/ns/j2ee/web-app_2_"> 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
第二步:
1.
2. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
3. "/dtds/">
4.
5.
6.
7.
8. application/octet-stream
9. inputStream
10. attachment;filename="${fileName}"
11. 4096
12.
13.
14.
15.
当 result为stream类型时,struts2会自动根据你配置好的参数下载文件。
其中主要使用的参数是:
contentType 指定下载文件的文件类型 —— application/octet-stream 表示无限制
inputName 流对象名 —— 比如这里写inputStream,它就会自动去找Action中的getInputStream方法。
contentDisposition 使用经过转码的文件名作为下载文件名 —— 默认格式是
attachment;filename="${fileName}",将调用该Action中的getFileName方法。
bufferSize 下载文件的缓冲大小
之后写个DownloadAction:
1. package action;
2.
3. import tream;
4.
5. import tActionContext;
6.
7. public class DownloadAction {
8.
9. private String fileName;
10.
11. public void setFileName(String fileName) {
12. me = fileName;
13. }
14. public InputStream getInputStream() {
15. return vletContext().getResourceAsStream("/" + fileName);
16. }
17.
18. public String execute(){
19. return "success";
20. }
21.
22. }
* 注意使用getResourceAsStream方法时,文件路径必须是以“/”开头,且是相对路径。这个路径是相对于
项目根目录的。
* 可以用return new FileInputStream(fileName)的方法来得到绝对路径的文件。
在WEB-INF下随意丢一个,部署好后进入浏览器,输入tomcat地址/项目路径
/?fileName=即可下载到该文件。
附:contentType类型.
'ez' => 'application/andrew-inset',
'hqx' => 'application/mac-binhex40',
'cpt' => 'application/mac-compactpro',
'doc' => 'application/msword',
'bin' => 'application/octet-stream',
'dms' => 'application/octet-stream',
'lha' => 'application/octet-stream',
'lzh' => 'application/octet-stream',
版权声明:本文标题:struts2下载(使用配置文件) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1718261021a659907.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论