1,如果是struts的話,在處理下載流完了之后return null;便可以
2,JSF1.2需要在處理完下載后,加上faces.responseComplete(); 而不是return null;
3, // 停止页面的执行
Response.End();
記錄一下。
public void downLoadFile(ActionEvent event) throws DatabaseException {
try {
FacesContext faces = FacesContext.getCurrentInstance();
ExternalContext extContext = faces.getExternalContext();
String filePath = extContext.getApplicationMap().get("filePath")
.toString();
UIParameter component = (UIParameter) event.getComponent()
.findComponent("deleteId");
int id = Integer.parseInt(component.getValue().toString());
Seg_Files b = DAOFactory.getSeg_FilesDAO().getSeg_FilesById(id);
String fileName = filePath+ b.getFileName();
//System.out.println(fileName);
ByteArrayOutputStream baos=FileUtils.downloadFile(fileName);
//獲得文件的ByteArrayOutputStream結束
HttpServletResponse response = (HttpServletResponse) faces.getExternalContext().getResponse();
//response.setHeader("Content-disposition", "attachment; filename="+ b.getFileName());
//response.setContentType("text/txt; charset=utf-8");
response.setHeader("Content-disposition", "attachment; filename="+ b.getFileName());
response.setContentType("application/txt;charset=utf-8");
response.setContentLength(baos.size());
ServletOutputStream sos = response.getOutputStream();
baos.writeTo(sos);
baos.close();
sos.flush();
//需要呼叫Complete,要不就報:Cannot forward after response has been committed
faces.responseComplete();
} catch (IOException ex) {
System.out.println(ex);
}
}
public static ByteArrayOutputStream downloadFile(String fileName) throws IOException {
FileInputStream fis=new FileInputStream(fileName);
BufferedInputStream bis=new BufferedInputStream(fis);
ByteArrayOutputStream baos=new ByteArrayOutputStream();
BufferedOutputStream bos=new BufferedOutputStream(baos);
int i;
while((i=bis.read())!=-1) {
bos.write(i);
}
bos.flush();//must have
bis.close();
return baos;
}
分享到:
相关推荐
JSF实现文件的下载功能 public static void downloadFile(String path,String fileName) { try { // 获得JSF上下文环境 FacesContext context = FacesContext.getCurrentInstance(); // 获得ServletContext...
JSF文件上传下载完整代码....
自己写的JSF文件上传项目,可以最大支持最大1.99G文件 需要的jar包需奥自己加 附:jar目录截图
jsf文件上传和下载例子,可以直接在eclipse下用tomcat直接运行
jsf jar文件 下载 jsf开发 jsf(jar文件下载) jsf-api.jar
由于JSF2.0标准实现没有提供文件上传组件,而实际应用中很多时候需要上传文件,为了方便开发,我做了一个基于JSF2.0的文件上传组件,上传使用的是Apache 的commons-fileupload组件,我已经将commons-fileupload-...
jsf1.2 javaserver faces
jsf文件上传,不错的文件上传资料
JSF 上传文件例子 英文 经测试,能行
jsf官方实现默认是不支持multipart/form-data类型的表单的,为了使jsf能够解析multipart/form-data表单的数据,我参考了myfaces1.1的方式,然后按照commons-fileupload1.2重构了部分代码(myfaces1.1使用的是commons...
jsf结合ajax实现文件上传,值得阅读
jsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSFjsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSF
jsf 分页 jsf 分页 jsf 分页 jsf 分页
Mojarra JSF 2.0库文件。开发JSF2.0 Web应用时放在lib目录下。
教你使用JSF和MyFaces实现文件上载。
这个主要讲jsf上传文件,因此只罗列了上传文件用到的包和标签。 Web-xml文件如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3...
JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架...
浅剖数据jsf格式数据转换为segy数据,可以实现数据转换,以至于在其他软件上处理数据
超一流的配合更强的组合 相当好的组合richfaces跟jsf
jsf-api.jar与jsf-impl.jar import javax.faces.*类报红的原因就是使用jsf框架缺少jsfjar包,资源包含jsf必需的jar包