<h:commandLink actionListener="#{referenceGuideCtrller.download}" value="Download" > <f:param name="fileLink" value="#{refFile.filePath}"></f:param> </h:commandLink>
public void download() { try { FacesContext fc = FacesContext.getCurrentInstance(); String fileName = FacesContextUtil.getRequest().getParameter("fileLink"); String filePath = FacesContextUtil.getFileUploadPath() + fileName; logger.debug("file path:" + filePath); //filePath:/mnt/vishuo-data/reference/test.txt ByteArrayOutputStream baos= downloadFile(filePath); HttpServletResponse response = (HttpServletResponse) fc.getExternalContext().getResponse(); response.reset(); response.setHeader("Content-disposition", "attachment; filename=" + fileName.substring(fileName.lastIndexOf("/")+1)); //不是内嵌显示(attachment),而是作为附件下载 // response.setHeader("Content-disposition", "inline; filename=" + fileName.substring(fileName.lastIndexOf("/")+1)); //内嵌显示(inline) response.setContentType("application/x-download"); response.setContentLength(baos.size()); ServletOutputStream sos = response.getOutputStream(); baos.writeTo(sos); baos.close(); sos.flush(); sos.close(); FacesContext.getCurrentInstance().responseComplete(); } catch (IOException ex) { logger.debug(ex); } } public 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(); bis.close(); return baos; }
相关推荐
总之,JSF文件下载功能的实现涉及到JSF上下文、Servlet上下文、HTTP响应头设置、文件流处理等多个关键环节。理解并熟练掌握这些知识点对于开发Web应用程序,特别是处理文件操作的场景非常重要。
以上就是JSF文件上传和下载的基本实现。为了确保安全性和性能,还需要考虑错误处理、文件大小限制、临时文件管理以及用户权限控制等细节。同时,现代的Web开发中,还可能结合使用CDN(内容分发网络)和云存储服务来...
jsf jar文件 下载 jsf开发 jsf(jar文件下载) jsf-api.jar
jsf 文档 jsf 文档 jsf 文档 jsf 文档
在JavaServer Faces (JSF)框架中,文件上传和下载是常见的功能,广泛应用于Web应用程序中,例如用户需要上传个人照片、下载文档等。本文将详细介绍如何在JSF环境中实现文件上传和下载,并提供一个可直接在Eclipse下...
但是,根据上下文,我们可以推断文档可能包含有关JSF的详细教程或参考资料,比如如何配置JSF环境、创建JSF组件、处理用户事件以及调试JSF应用程序等内容。 总的来说,JSF是一个强大的工具,它为Java开发者提供了...
JSF(JavaServer Faces)是Java...对于希望学习或改进自己JSF文件上传功能的开发者来说,这是一个宝贵的资源。通过深入研究源代码,可以了解到如何处理大文件、如何优化上传性能以及如何确保上传过程的稳定性和安全性。
**导航** 在JSF中是通过配置文件(faces-config.xml)或编程方式实现的,决定了根据用户的操作如何重定向到不同的页面。 **JSF API** 还提供了许多其他功能,如国际化支持、错误处理和事件传播等。这个帮助文档会...
1. 开发自定义组件:这是解决JSF文件上传问题的一种方法,通过编写自定义组件,可以扩展JSF的功能以支持文件上传。这通常涉及到解析multipart/form-data请求,处理文件流,并将其与后台的管理Bean进行交互。 2. ...
1. **JSF组件体系结构**:文档会详细介绍JSF组件的层次结构,解释组件如何组成界面,并展示如何将它们组合在一起创建复杂的表单和布局。 2. **JSF生命周期**:JSF应用遵循一系列阶段,从初始化到渲染响应。理解每个...
1. **jsf-api.jar**:这个JAR文件包含了JSF API,即JSF规范定义的接口和类。开发者在编写JSF应用程序时,主要会引用这个API,它定义了诸如FacesContext、UIComponent、ValueExpression等核心组件和接口。通过这些API...
JSF的中文帮助文档是一个非常宝贵的资源,对于学习和理解这个框架的开发者来说,无论是初学者还是经验丰富的专业人士,都是不可或缺的参考资料。 文档通常分为PDF和CHM两种格式,每种都有其独特的优点。**PDF...
这篇很全面的帮助文档旨在为开发者提供JSF的详尽指南,帮助他们掌握JSF的核心概念、组件、生命周期以及最佳实践。 1. JSF简介: JSF是一个MVC(模型-视图-控制器)架构的框架,简化了创建基于Java的动态Web页面的...
(难道是我下载的JSF reference implementation 版本的原因?) <br>无论如何,最后我还是找到了列表中的所有jar。 <br> * jsf-impl.jar * jsf-api.jar * commons-digester.jar * ...
【标题】"lib文件,jar包,jsf+spring"涉及的是Java开发中的关键...开发者需要下载完整的两个包,并将其中的库文件添加到项目环境中,然后根据项目需求配置JSF和Spring的集成,以便于开发和管理高效、模块化的Web应用。
在JSF应用中,`.jar` 文件通常包含JSF实现库、组件库或自定义组件的实现。开发者可以将这些库导入到项目中,以便利用JSF的功能。 **使用JSF进行开发**: 1. **环境配置**:首先需要在项目中引入JSF的库,如Mojarra...
**JSF 1.2核心详解** JavaServer Faces (JSF) 是Java平台上的一个用于构建用户界面的组件模型框架,特别适用于Web...而`core jsf.chm`文件很可能是关于JSF 1.2的官方文档或教程集合,可以帮助深入学习和掌握这些概念。
这个CHM文件包含了JSF的核心API文档,是开发者在编写JSF应用时的重要参考。CHM(Compiled HTML Help)是一种微软的文件格式,用于存储和查看帮助信息。在`JSF_API.CHM`中,你可以找到关于JSF接口、类和方法的详细...
JSF概述 文档