Struts2 文件下载 文件名自定义 文件名中文
struts文件下载,文件名自定义,文件名中文,简单例子如下:
?
一、ExcelBaseAction代码:
?
package com.comba.omc.web.action;import java.io.InputStream;import java.io.UnsupportedEncodingException;import org.apache.struts2.ServletActionContext;public abstract class ExcelBaseAction{public InputStream excelStream;//excel文件public String downloadFileName;//文件名public abstract String toExcel();public InputStream getExcelStream() {return excelStream;}public String getDownloadFileName() { try { ServletActionContext.getResponse().setHeader("charset","ISO8859-1"); return new String(this.downloadFileName.getBytes(), "ISO8859-1"); } catch (UnsupportedEncodingException e) { return "获取文件名出现了错误!"; } } }
?
二、FileDownloadAction代码:
?
?
package com.comba.omc.web.action;import java.io.InputStream;import org.apache.struts2.ServletActionContext;public class FileDownloadAction extends ExcelBaseAction{private String inputPath;public void setInputPath(String value) {inputPath = value;}// 获取下载的文件public InputStream getInputStream() throws Exception {// inputPath="/images/struts.gif";System.out.println("---------" + ServletActionContext.getServletContext().getResourceAsStream(inputPath));return ServletActionContext.getServletContext().getResourceAsStream(inputPath);}public String execute() throws Exception {return toExcel();}@Overridepublic String toExcel() {try{downloadFileName = "文件名我来定义.xls";}catch(Exception ex){ex.printStackTrace();}// TODO Auto-generated method stubreturn "excel";}}
?
三、Struts.xml配置信息:
?
?
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><package name="struts2" extends="struts-default"><action name="download" type="stream"> <param name="contentType">application/vnd.ms-excel;charset=ISO8859-1</param> <param name="contentDisposition">attachment;filename="${downloadFileName}"</param> <param name="bufferSize">1024</param> <param name="inputName">inputStream</param> </result> </action></package></struts>
?
四、index.jsp文件:
?
?
<%@ taglib prefix="s" uri="/struts-tags" %><%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>Showcase - Fileupload</title></head><body> <h1>File Download Example</h1> <ul> <li> <s:url var="url" action="download"/><s:a href="%{url}">Download Excel.</s:a> The browser should prompt for a location to save the ZIP file. </li> </ul></body></html>?
?
?