日期:2014-05-19  浏览次数:20599 次

struts2文件下载的问题,求解!
我用struts2写了一个文件下载的功能,现在如果有文件的时候下载没有问题,但是现在我想在没有文件的时候用户点击下载按钮提示用户没有文件,怎么做?我的代码如下

public InputStream getEmailFile(){
try{
int userid = (Integer)ServletActionContext.getRequest().getSession().getAttribute("userid");//当前登录的用户ID值
int emailid = email.getId();//所点击email的ID值
List<String> list = this.service.getEmailFileName(emailid);
filename = list.get(0);//得到要下载的附件名
String path = "/emailFiles/" + userid + "/" + emailid + "/" + filename;
filename = new String(filename.getBytes("GBK"),"ISO-8859-1");
return ServletActionContext.getServletContext().getResourceAsStream(path);
}catch(Exception e){
System.out.println("没有文件!");
ServletActionContext.getRequest().setAttribute("message", "没有附件!");
}
return null;
}
@Override
public String execute() throws Exception {
return SUCCESS;
}

------解决方案--------------------
list.size<=0;
------解决方案--------------------
文件下载当然是有文件才会显示在页面让用户下载 
如果数据库没有上传文件的记录就不显示
------解决方案--------------------
另外,如果没有文件,就会抛出异常FileNOtFindException,不是吗。简单一点,你用Try{}catch...捕获这个异常,然后response返回给客户端提示没有文件??
------解决方案--------------------
在action中先判断文件是否存在, 如果不存在,添加super.addActionError("文件不存在")return “XXX”;可以了了
------解决方案--------------------
同意3楼