struts的用DownloadAction问题

Fishest 2011-08-26 12:35:54
最近在维护,需要修改一个功能,先看代码:

public class DownloadFileAction extends DownloadAction {

private static String contentType = "application/file";

@SuppressWarnings("unchecked")
@Override
protected StreamInfo getStreamInfo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

// 下载的文件名
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMddhhmmss");
String FileName = sDateFormat.format(new java.util.Date()) + ".data";

// 下载方式
response.addHeader("Content-Disposition", "attachment; filename="
+ FileName);

// WEBSERVICE取得数据
DownloadFileBiz sa = new DownloadFileBiz();
String hex = "";
try {
// 接受获得的数据
hex = sa.getFileInfo(inUseList, version);
return new ByteStreamInfo(CommonWebUtil.hexStr2bytes(hex),
contentType);
} catch (StationBizException e) {
// 当BIZ有异常的时候跳转错误页面
StationException se = new StationException(e);
se.setActionForward(mapping
.findForward(StationWebConst.FORWARD_ERROR));
throw se;
}
}


现在是有异常并且进入了catch ,但是现在最终的效果是弹出一个下载框,将错误页面的HTML内容给下载下来了,这个应该怎么处理呢。
...全文
79 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fishest 2011-08-29
  • 打赏
  • 举报
回复
OK了,感谢各位大神
shine333 2011-08-26
  • 打赏
  • 举报
回复
// 下载方式
response.addHeader("Content-Disposition", "attachment; filename="
+ FileName);
放到try里面,return前面
softroad 2011-08-26
  • 打赏
  • 举报
回复

hex = sa.getFileInfo(inUseList, version);
StreamInfo si = new ByteStreamInfo(CommonWebUtil.hexStr2bytes(hex),
contentType);
response.addHeader("Content-Disposition", "attachment; filename="
+ FileName);

return si;


试试。
Fishest 2011-08-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 softroad 的回复:]

你可以response.getWrite().write()一些东西,比如错误信息。
不知你想要什么效果。如果异常了你想怎么办
[/Quote]

就是出现异常后跳转到错误页面。
softroad 2011-08-26
  • 打赏
  • 举报
回复
你可以response.getWrite().write()一些东西,比如错误信息。
不知你想要什么效果。如果异常了你想怎么办

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧