天天看点

使用struts2下载文件时需要注意的事项

需要注意的:

  1. action中method;
  2. inputName的值;
  3. 下载文件入口方法的形式;
//下载文件
public class DownLoadAction extends ActionSupport{
	//被下载文件的入口
	//这里方法需要是get开头,理解为action的一个属性比较好理解,
	//get后面跟的字符串和配置文件中的inputName的值息息相关.
	public InputStream getDownloadFile() {
		return ServletActionContext.getServletContext().getResourceAsStream("/save/ss.txt");
		
	}
	
	@Override
	//这里execute方法需要保留,并且配置文件中没有指定method,所以会执行这个方法.
	public String execute() throws Exception {
		return SUCCESS;
	}
	
}
           
<!--下载文件的action(method不指定,或者指定为默认的execute方法 ,不是指定为下载文件入口的方法,不然会报错 -->
		<action name="DownLoadAction" class="com.itcast.action.DownLoadAction" method="execute">
			<result type="stream">
				<!--文件的类型  -->
				<param name="ContentType">text/plain</param>
				<!--指定文件名  -->
				<param name="ContentDisposition">
					<!-- 这里filename的值可以指定,不一定和原文件名相同 -->
					attachment;filename="SSddg.txt"
				</param>
				<!-- 输入流 ,inputName的值需要是action中文件输入流方法get后面的字符串,首字母可以大写,也可以小写-->
				<param name="inputName">downloadFile</param>
				<!-- 下载文件时的缓存大小 -->
				<param name="bufferSize">1024</param>
			</result>
		</action>
           

继续阅读