`
diqizhan
  • 浏览: 146524 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

struts2文件下载(实现模板下载)

    博客分类:
  • java
阅读更多
项目中的一个应用,提供模板下载。

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”也一样可以下载,不会有问题,谁能告诉我这其中有没有什么区别呢?
2
0
分享到:
评论

相关推荐

    struts2文件上传模板

    简单的文件上传实例,利用iframe实现页面无刷新上传

    struts2的struts.properties配置文件详解

    11. struts.freemarker.manager.classname:这是一个FreemarkerManager实现类,Struts2用于处理FreeMarker模板。 12. struts.i18n.encoding:这是国际化信息的内码,Struts2用于处理国际化信息。 13. struts.i18n....

    Struts2属性文件详解

    如果需要实现自己的配置管理器,开发者则可以实现一个实现Configuration接口的类,该类可以自己加载Struts 2配置文件. struts.locale 指定Web应用的默认Locale. struts.i18n.encoding 指定Web应用的默认编码集.该...

    Struts2与Velocity模板

    在 Struts2 框架中,Velocity 模板引擎可以与 Struts2 集成,实现了显示层与程序代码的分离。 Velocity 模板引擎的优点在于,它可以使得开发人员快速开发显示层,同时也可以与 Struts2 框架集成,以实现显示层与...

    Struts2核心包

    freemarker-2.3.16.jar:Struts 2的UI标签的模板使用FreeMarker编写。 commons-fileupload-1.2.1.jar:文件上传组件,2.1.6版本后必须加入此文件。 commons-io-1.3.2.jar:IO输入输出流组件,主要完成文件的读写功能...

    (简单)struts2下使用pageoffice实现文件在线编辑

    一个演示Struts2下如何集成PageOffice的最简单示例。 PageOffice是标准Java组件,标准JSP Tag标签方式引用,完美支持Eclipse、MyEclipse等开发工具。 通过Word动态数据填充功能,实现格式复杂的模板套红。不但可以...

    Struts2用到的核心jar包

    Struts2用到的核心jar包: ... 在Struts2中提倡使用 freemarker模板,但实际项目中使用jsp也很多。 commons-fileupload-1.2.1.jar 用于实现文件上传功能的jar包。 使用时候将5个Struts2的核心Jar包到WEB-INF/lib/下

    struts2必须包

    struts2必须包,commons-fileupload-1.3.1.jar 实现文件上传包,commons-io-2.2.jar 用来处理IO的一些工具类包,commons-lang3-3.1.jar 提供一些基础的、通用的操作和处理,如自动生成toString()的结果、自动实现...

    Struts2入门教程(全新完整版)

    3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 4 (5)其它配置文件 4 4.让MyEclipse提示xml信息 4 5.如何...

    struts2讲义_吴峻申

    4.4.2 Struts2文件下载功能开发 68 第5章 Struts2标签库 73 5.1 Struts2标签使用原理解疑 73 5.2 OGNL表达式语言介绍 75 5.3 Struts2控制标签简介 79 5.3.1 append标签使用介绍 79 5.3.2 generator标签使用介绍 80 ...

    Struts2 in action中文版

    第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 为什么使用框架 8 1.3 Struts 2框架...

    Struts2 poi动态导入导出Excel源码示例

    程序使用Struts2(SSH即Struts2+Hibernate+Spring)+POI+MySQL实现Excel动态数据导入和导出,程序源码文件附带运行说明

    struts项目学习笔记

    支持更多视图技术(JSP(转译java文件,编译成class文件,才可以运行)、(模板技术,html,把数据和模板html一起以流方式输出)FreeMarker、Velocity) 基于AOP(面向切面编程)思想的拦截器机制,更易扩展(不修改源代码的...

    一个简单的Myeclipse+Struts开发登陆的JSP例子

    在这个面板中,我们输入文件名称 "userLoginSuccess.jsp",选择模板 "Standard JSP using Struts 1.1",然后点击 "Finish" 按钮。 完成后,struts-config.xml 文件自动被更新,新建的 JSP 文件也被打开了。在这个 ...

    Strut2+Spring+SQLServer的学生成绩管理系统

    包含SQLServer的数据库文件,直接...Struts2与Spring的整合,使用Apache的POI框架导出Excel等功能会让你愉悦一下的。看不惯有些人很烂的代码收上八九分的,两分是为了自己挣点分下资源,下过觉得不亏的给好评哦,亲~

    ssh2(struts2+spring2.5+hibernate3.3)自动生成模版

    generator\template\src\${basepackage_dir}目录下的文件实现: generator\template\src\${basepackage_dir}\bean 该目录下文件定制bean,以及or/map文件的模板 generator\template\src\${basepackage_dir}\dao 该...

    低清版 大型门户网站是这样炼成的.pdf

    3.1 struts 2主题与模板 103 3.2 struts 2控制标签详解 105 3.2.1 if/elseif/else标签详解 105 3.2.2 iterator标签详解 106 3.2.3 append标签详解 108 3.2.4 generator标签详解 110 3.2.5 merge标签详解 112 ...

    图文教程MyEclipse配置struts+hibernate+spring.doc

    图文教程MyEclipse配置struts...本文档最后部分是一个实战演习,讲述如何使用struts、hibernate和spring三个框架来实现一个完整的Web应用程序,包括建立数据库连接、生成FreeMarker模板、配置struts-config.xml文件等。

    JSP实现从不同服务器上下载文件的方法

    本文实例讲述了JSP实现从不同服务器上下载文件的方法。分享给大家供大家参考,具体如下: 最近在项目当中遇到模板下载的问题:当服务器为Tomcat的时候文件可以正常下载,但是当放到线上(WebLogic服务器)下载的模板...

    ssh2+mysql实现crm客户管理系统.zip

    这是一款由jsp+ssh+mysql实现的CRM客户关系管理系统,其中struts版本是struts2,系统实现了CRM客户关系系统的基本功能,主要有信息管理、客户管理、合同管理、产品管理、产品类别管理、人事管理、数据回收站、系统...

Global site tag (gtag.js) - Google Analytics