对于服务器上的英文名的文件,可以方便的使用<a href=""/></a>进行下载,但如果是中文文件名的文件,如果使用<a href="中.jpg"></a> 就会出现连接上的乱码(如%4e%54%79),为了解决这个问题,struts2通过一个文件下载拦截器支持中文命名文件的下载
首先编写web.xml


























文件下载Action
struts2的文件下载Action与普通的Action并没有太大不同,仅仅是该action需要提供一个返回InputStream流的方法
,该输入流代表了被下载文件的入口,该Action类代码如下:




































配置Action
contentType:指定被下载文件的文件类型
inputName:指定被下载文件的入口输入流
contentDisposition:指定下载文件的文件名
bufferSize:指定下载文件时的缓冲大小
因为stream结果类型的逻辑视图是返回给客户端一个输入流,因此无需指定location属性
































登陆Action:













































资源文件:globalMessages.properties 内容为空
登陆页面:input..jsp


















下载页面:struts2Down.html




















在images文件夹下copy一个图片命名为中.gif,运行input.jsp. 随便输入用户名密码登陆后即可下载struts2的logo
下面说说下载的权限控制,我们希望只有当scott用户登陆时候,才可以下载struts2的logo压缩文件,该怎样处理呢?
下面就是我们的权限控制下载Action














































修改struts.xml











































用scott登陆,就可以下载压缩文件了