浏览 2705 次
锁定老帖子 主题:Struts2上传和下载
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-04
1、上传的Action需定义三个变量,分别是File类的变量名,对应页面上file标签的name属性,两个String类型,分别用File的变量名+FileName和File的变量名+FileName+ContextType,如File uploadFile,则要定义String uploadFileFileName和String uploadFileContextType,并有对应的getter和setter方法,这样当调用Action时从页面传入要上传的文件,Struts2便会获得文件名并自动获得文件类型,然后用标准IO输入输出流将文件写到服务器上。 2、在form表单中一定要设置属性:method="post" enctype="multipart/form-data",否则无法获得文件。 3、下载的Action中要定义String类型的变量对应文件名,及相应的getter和setter方法,以及返回类型为InputStream的get方法,该方法名为get+InputSream的名字,该名字在sturts.xml中的Action中result标签中的param子标签配置,如 <param name="inputName">downloadFile</param>,则Action中要有InputStream getDownloadFile()方法,另外还要配置 <param name="contentType">application/octet-stream;charset=ISO8859-1</param>指下载文件的类型属性, <param name="contentDisposition">attachment;filename="${downloadChineseFileName}"</param>指下载文件的中文名字,downloadChineseFileName是Action中编码后的名字,还有<param name="inputPath">/UploadFiles/</param>是文件的相对路径,在项目名根目录下,通过这些配置,就能在文件存在的前提下下载文件到本地了。 4、在开发过程中,出现不同页面调用同一Action却只有第一个页面可以,后面的出现无法找到匹配的Action的错误(There is no Action mapped for action name XXX),多次改name和path都不成功,后来受启发将action路径改为项目的绝对路径,如在原action的路径前加上新建JSP页面自动生成的bashPath,成功调用并执行 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-11-06
LZ贴下源码或传一个附件供大家参考学习下呗
|
|
返回顶楼 | |