现在的位置: 首页 > 综合 > 正文

Struts2使用注解方式下载文件

2013年09月14日 ⁄ 综合 ⁄ 共 1274字 ⁄ 字号 评论关闭

使用Struts2
,很多人都知道怎么用配置文件的形式实现文件下载
,但是这样做,要写配置文件确实麻烦,那有没有更方便点的方法呢,有!

使用注解@Annotation的方式就可以省去写配置文件的步骤,在java代码
中的Action上加上“文件下载”的注解即可,具体怎么加呢!?

我们来看一个例子吧,用例子说话胜过千言万语。

 

@Results( { @Result(name = "download", type = "stream", params = { "contentType", "application/vnd.ms-excel",
"inputName", "inputStream", "contentDisposition", "attachment;filename=/"${downloadFileName}/"", "bufferSize",
"4096" }) })
public class DownLoad2Action extends ActionSupport{
public static final String DOWNLOAD = "download";
private String fileName;// 初始的通过param指定的文件名属性
public String getFile() throws Exception{
setFileName("add的.xls");
return “download”;
}

public InputStream getInputStream() throws Exception {
WritableWorkbook workbook = Workbook.createWorkbook(new File("d://a.xls"));
WritableSheet sheet = workbook.createSheet("测试", 0);

Label label = new Label(0, 0, "hello world 从");
sheet.addCell(label);
workbook.write();
workbook.close();
return new FileInputStream(new File("d://a.xls"));
}

/** 提供转换编码后的供下载
用的文件名 */

public String getDownloadFileName() {

String downFileName = fileName;
try {
downFileName = new String(downFileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return downFileName;
}

public void setFileName(String fileName) {
this.fileName = fileName;
}
}

访问的URL :down-load2!getFile.action

params 中使用键值对进行设置:key1,value1,key2,value2.....;对应response相应头信息

抱歉!评论已关闭.