项目中的一个应用,提供模板下载。
jsp页面:
<a href="#" id="downLoadTemplate"><span>模板下载</span></a>
对应的js部分,负责触发事件:
$('#downLoadTemplate').click(function(){
location.href = contextPath + '/libprodmgr/billFormat/downLoadBillFormat.action';
});
action 中代码部分:
//下载文件的文件名
private String downLoadFileName;
public String getDownLoadFileName() {
return downLoadFileName;
}
public void setDownLoadFileName(String downLoadFileName) {
this.downLoadFileName = downLoadFileName;
}
//从下载文件原始存放路径读取得到文件输出流
public InputStream getDownloadFile() {
return ServletActionContext.getServletContext().getResourceAsStream("/common/excelModule/你的文件名.xls");
}
public String downLoadBillFormat() {
try {
//因为我们是URL的请求去下载文件,所以用URL编码,这样可保证中文名称不会乱码。
downLoadFileName = URLEncoder.encode("你的文件名.xls", "UTF-8");
ServletActionContext.getResponse().setHeader("Content-Disposition", "attachment;filename=" + downLoadFileName);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return SUCCESS;
}
之前自己是用下面这种方法去解决中文乱码问题的,但是发现在tomcat下是不会乱码,而在WebLogic下还是会乱码,所以还是上面那种URL编码可靠一点。
public String downLoadBillFormat() {
try {
ServletActionContext.getResponse().setHeader("Content-Disposition", "attachment;filename="
+ new String("你的文件名.xls".getBytes(), "iso-8859-1"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return SUCCESS;
}
xml配置文件部分:
<action name="downLoadBillFormat" class="billFormatAction" method="downLoadBillFormat">
<result name="success" type="stream">
<param name="contentType">application/vnd.ms-excel</param>
<param name="contentDisposition">attachment;fileName=${downLoadFileName}</param>
<param name="inputName">downloadFile</param>
</result>
</action>
在xml的配置文件中,
<param name="inputName">downloadFile</param>
中的“downloadFile”必须对应action中的方法名“getDownloadFile”。
有一个问题,在xml中
<param name="contentDisposition">attachment;fileName=${downLoadFileName}</param>
中的“fileName”,我发现改为“filename”也一样可以下载,不会有问题,谁能告诉我这其中有没有什么区别呢?
分享到:
相关推荐
在这个“Struts2实现文件下载功能”的示例中,我们将深入探讨如何利用Struts2框架来实现在web应用中让用户下载文件的功能。 首先,我们需要理解文件下载的基本原理。在Web应用中,当用户点击一个链接或提交一个表单...
这篇博客文章“Struts2 上传下载模板”可能提供了关于如何在Struts2框架中实现这一功能的详细教程。 首先,我们来讨论文件上传。在Struts2中,文件上传通常依赖于`Apache Commons FileUpload`库,它处理了文件的多...
总之,这个项目实例为使用Struts2和Uploadify实现带进度条的多文件上传及下载功能提供了一个基础模板,对于学习和实践此类功能的开发者来说是一个有价值的参考。通过深入研究和理解这个项目的代码,可以提升对Struts...
Struts2 文件上传模板是一个基于Java的Web应用框架——Struts2实现的文件上传功能示例。这个模板展示了如何在不刷新整个页面的情况下,通过使用IFrame技术来处理文件上传请求,提供用户友好的交互体验。 在Struts2...
在下载并解压"struts2所有jar包"后,开发者需要将lib目录下的所有jar文件添加到项目构建路径中,确保运行时可以找到所有依赖。对于Maven或Gradle用户,可以通过在pom.xml或build.gradle文件中指定相应的依赖项,实现...
在本“Struts2框架模板”中,我们将探讨Struts2的基础知识、核心组件、配置文件、拦截器以及如何快速搭建一个基本的Struts2项目。 1. **Struts2基础** - **MVC模式**:Struts2遵循MVC模式,使得业务逻辑、数据模型...
Struts2提供了内置的支持来处理文件上传请求,使得开发人员能够方便地实现这一功能。 在Struts2中,文件上传主要依赖于Apache的Commons FileUpload库,这是一个专门用于处理HTTP多部分请求(multipart/form-data)...
若需要实现自定义的配置管理器,则需创建一个实现了`Configuration`接口的类,并在类中实现Struts 2配置文件的加载逻辑。 #### struts.locale 此属性指定了Web应用的默认Locale设置,用于确定应用的语言环境和区域...
### Java 实现模板下载功能详解 #### 一、概述 在Web应用开发中,模板下载功能是常见需求之一,尤其在报表系统、数据导出等场景下应用广泛。本篇文章将详细阐述如何利用Java技术栈实现一个简单的模板下载功能。 #...
10. **国际化与本地化**: Struts2提供了对多语言的支持,可以通过资源文件轻松实现界面的国际化。 使用Struts2核心jar包时,需要正确配置web.xml以启用Struts2框架,并在项目中引入相应的依赖。开发过程中,还需要...
6. 在Struts2的配置文件中,为下载Action定义一个结果,指定到一个可以触发文件下载的JSP或FreeMarker模板。 7. 最后,客户端通过点击链接或提交表单,触发相应的Struts2 Action,完成文件的下载。 以上就是关于...
9. **国际化和本地化**:Struts2支持多语言,可以通过资源文件来实现。 10. **异常处理**:Struts2提供了一套完整的异常处理机制,可以自定义错误页面和异常处理器。 总的来说,"struts2jar.zip"压缩包是一个实用...
2. **struts2-convention-plugin**: 这个插件实现了约定优于配置的原则,使得开发者可以不写XML配置文件,而通过类名和方法名自动映射URL。 3. **struts2-dojo-plugin**: 提供了与Dojo JavaScript库的集成,便于...
总的来说,"struts2框架空白模板.rar"是一个用于快速启动Struts2项目的起点,它包含了框架的基本配置、核心组件以及一些常见的业务场景示例,使得开发者能够更专注于业务逻辑的实现,而无需从零开始搭建环境。...
11. struts.freemarker.manager.classname:这是一个FreemarkerManager实现类,Struts2用于处理FreeMarker模板。 12. struts.i18n.encoding:这是国际化信息的内码,Struts2用于处理国际化信息。 13. struts.i18n....
在项目中使用Struts2时,我们需要配置struts2的主配置文件(struts.xml),定义Action、结果类型、拦截器栈等。Action是业务逻辑的入口点,Result表示一个操作完成后转向的页面或结果。拦截器是Struts2的一大特色,...
本项目通过Struts2实现了文件的上传和下载功能,这在许多Web应用程序中是必不可少的,例如用户资料提交、资源分享等场景。在Eclipse集成开发环境中,结合Tomcat服务器,我们可以构建出高效且易于维护的文件处理系统...
5. **国际化(Internationalization)**: Struts2支持多语言环境,开发者可以通过配置文件轻松地实现应用的国际化。 6. **Ajax支持**: Struts2与jQuery和其他JavaScript库集成良好,可以方便地创建异步更新的用户界面...
Struts2提供了一系列内置的拦截器,如`validation`、`propertypopulation`、`security`等,这些拦截器通常通过定义在`struts-default.xml`中的拦截器堆栈来实现。 - **Action**:Action是Struts2框架中最核心的部分...