`
lonvea
  • 浏览: 76026 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

richfaces中上传组件的使用

 
阅读更多

前沿:JSF本身并没有提供上传组件,如果使用原生的JSF做上传工具,你可能需要做更多的额外操作。幸运的是richfaces知道了我们的苦衷,它提供了高效可控的上传组件<richfaces:fileUpload/>,下面简单给你大家介绍一下如何使用。

 

 

1.web.xml中的配置

 

  如果你需要对文件上传的大小提供阀值控制,可以设定,具体参考richfaces的文档。否则我们不做更多处理。

  如果你需要配置的自己的文件系统路径,你可以在context-param中配置路径。

<context-param>
	<param-name>rentImagesPath</param-name>
	<param-value>/images/site/rent/</param-value>
</context-param>

 

2.page部分:上传组件

 

 

<rich:fileUpload fileUploadListener="#{rentPhoto.upload}" maxFilesQuantity="#{rentPhoto.uploadsAvailable}"
	id="upload" immediateUpload="#{rentPhoto.autoUpload}" acceptedTypes="jpg, gif, png, bmp" allowFlash="true"
	listWidth="500px" listHeight="100px" autoclear="true" status="operStatus"
        transferErrorLabel="传输出错--文件过大或名称错误!">
       <!-- 上传成功后,刷新图片列表,当然这个组件只是点缀,本文不作介绍 -->
	<a4j:support event="onuploadcomplete" reRender="photoList" />
</rich:fileUpload>

 

上面就是我们的fileUpload上传组件,它的一些属性,很容易理解,当然你可以参考文档。主要看rentPhoto.upload这个侦听器是如何工作的。

 

 

 

3.java部分

 

import org.richfaces.event.UploadEvent;
import org.richfaces.model.UploadItem;


public class RentPhoto {
 .....

 public void upload(UploadEvent event) throws Exception{
	FacesContext context=FacesContext.getCurrentInstance();
	ExternalContext ec=context.getExternalContext();
//获取servlet,其实你可以一步到位获取
    	ServletContext sc=(ServletContext)ec.getContext();
//上传项,item里封装了上传文件的所有数据,同时包含http数据
        UploadItem item = event.getUploadItem();
        Date date=new Date(System.currentTimeMillis());
//解码文件名,当文件命中有中文等其他字符时,你必须这么做
        String temp_path=java.net.URLDecoder.decode(item.getFileName(),"utf-8");
//找到文件名,如下操作,你可以根据自己的需要进行优化,具体可以看看java API中I/O流File
        if(temp_path.lastIndexOf('.')<0){
        	return;
        }
        if(item.getFileSize()>512000){
        	return;
        }
//重命名文件,保留格式。如果你有自己的压缩工具、水印等操作,在此可以加入。。MD5方法是自己写的,你可以使用其他的重命名文件的方案
        String fileName=MD5.Md5(date.toString())+temp_path.substring(temp_path.lastIndexOf('.'));
//web站点,简单文件系统路径,web.xml中配置
        FileOutputStream out=new FileOutputStream(sc.getRealPath(sc.getInitParameter("rentImagesPath"))+"/"+fileName);
        out.write(item.getData());
        out.close();
//保存文件名到数据库,文件保存在文件系统中。以下代码仅供参考,请使用自己的数据库操作方式:保存文件的文件名到系统.如果你没有设置文件系统,可以把图片保存在数据库中
        Session session=HibernateInit.currentSession();
        RPhoto photo=new RPhoto(fileName,rent.getId());
        new RPhotoOper().update(session, photo);
        HibernateInit.closeSession();
//异步操作,加入列表
       photoList.add(photo);
    }  

}

 

 

0
0
分享到:
评论

相关推荐

    richfaces实现ajax带进度条的上传

    3. **创建上传组件**:在JSF页面上,使用`&lt;rich:fileUpload&gt;`标签定义文件上传组件。你可以设置多个属性,如`fileUploadListener`用于监听文件上传事件,`maxFilesQuantity`限制最多可上传的文件数量,`allowFlash`...

    richfaces3.3.1官方demo的源代码

    - **RichComponents**:包含了一系列富客户端组件,如数据网格、时间选择器、文件上传等,每个组件都有详细的示例展示其使用方法和API。 - **Skinning and Theming**:RichFaces允许自定义皮肤和主题,这在创建...

    Practical RichFaces

    《Practical RichFaces》这本书深入探讨了如何在JavaServer Faces (JSF) 应用程序中有效地使用RichFaces框架,从而实现高效的AJAX功能。 RichFaces是一个强大的JSF组件库,它极大地扩展了JSF的功能,特别是在提升...

    RichFaces-3.2.1-lib

    描述提到“RichFaces 3.2.1的开发包”,这表明这是用于开发目的的,包含了开发者需要的所有资源和工具,以便在他们的项目中集成和使用RichFaces框架。"大小限制只能先传这个了"暗示可能原文件较大,因为某种上传限制...

    Richfaces4.0例子

    在"richfaces4_demo"这个压缩包中,很可能包含了若干个示例JSF页面和对应的后台Bean,展示了如何使用Richfaces4.0的各种组件和功能。开发者可以通过阅读源代码,了解每个组件的配置和用法,以及它们是如何与后台逻辑...

    jsf 里面richfaces 开发包

    1. **组件库**:RichFaces的组件库是其核心,包括但不限于数据表(`&lt;rich:datascroller&gt;`、`&lt;rich:extendedDataTable&gt;`)、对话框(`&lt;rich:popupPanel&gt;`)、时间选择器(`&lt;rich:calendar&gt;`)、文件上传(`...

    richfaces.jar

    **描述:**“在使用richfaces时,你会发现它已经集成了许多MyFaces Tomahawk的组件。据闻richfaces甚至收购了MyFaces,这表明richfaces在功能和性能上可能相当出色。” **标签:richfaces** **详细知识点:** **1...

    一个上传文件的jsf组件

    在实际开发中,为了更方便地处理文件上传,开发者可能会选择第三方库,如PrimeFaces或RichFaces,这些库提供了更高级的文件上传组件,支持进度条显示、多文件上传等功能。 综上所述,JSF中的文件上传涉及到使用`...

    richfaces-ui-3.2.0.GA

    3. **富组件集**:RichFaces 提供了一系列的富客户端组件,例如数据网格、日历、树形视图、滑块、下拉选择器等,这些组件可以轻松集成到 JSF 应用中,使得应用界面更加互动和美观。 4. **皮肤和主题**:RichFaces ...

    richfaces-4.0.0.Final

    RichFaces的核心在于其丰富的客户端组件库,这些组件可以直接嵌入到JSF页面中,无需额外的JavaScript库。其中包括表格、日历、树形结构、数据网格、图表、下拉选择框、滑块、上传/下载组件等。这些组件具有高度可...

    RichFaces 4 Developer Guide

    在现有 JSF 2 项目中使用 RichFaces 对于已经在使用 JSF 2 的项目来说,集成 RichFaces 相对简单,只需添加相应的依赖并配置即可。 #### 三、RichFaces 概览 ##### 1. 全面的技术需求 - **服务器要求**:除了上述...

    richfaces-components-ui-4.0.0.Final-sources

    9. **富组件示例**:在4.0.0.Final版本中,包括了如`&lt;rich:calendar&gt;`(日期选择器)、`&lt;rich:tabPanel&gt;`(选项卡面板)和`&lt;rich:fileUpload&gt;`(文件上传)等组件,这些都是构建复杂UI不可或缺的部分。 10. **...

    Websphere 上部署Richfaces 3.10 Demo

    总的来说,通过在Websphere上部署RichFaces 3.10的Demo,开发者可以直观地了解RichFaces的功能,学习如何将富客户端组件集成到企业级应用中,从而提升Web应用的交互性和用户体验。这个过程不仅涵盖了项目管理和部署...

    tomcat-5.5.26集成了richfaces-demo

    5. **集成示例**:在Tomcat中预集成richfaces-demo是为了让用户能够快速了解如何在实际项目中使用RichFaces。通过这个例子,开发者可以学习如何配置JSF和RichFaces组件,以及如何在Tomcat环境下部署和运行它们。 6....

    JSF 上传文件例子

    2. 使用现有的开源库:虽然JSF本身不提供文件上传功能,但有一些第三方库,如PrimeFaces、RichFaces或IceFaces等,提供了JSF兼容的文件上传组件。这些库通常已经处理好了文件上传过程中的复杂性,使得开发者能够轻松...

    RichFaces 3.2.0 GA的demo

    Jboss的JSF的组件框架RichFaces 3.2版本发布了,这个版本具有如下新的组件: * Combo Box * Inplace Input * Inplace Select * Progress Bar * File Upload * Columns * Pick List ...

    richfaces-ui-3.2.0.GA-bin.part1.rar

    Jboss的JSF的组件框架RichFaces 3.2版本发布了,这个版本具有如下新的...这个上传文件是3.2.0 GA的组件库的分卷2 文件名:richfaces-ui-3.2.0.GA-bin.part2.rar 分卷2地址: http://download.csdn.net/source/410832

    richfaces-ui-3.2.0.GA-bin.part2.rar

    rich:clientId(Id), rich:element(Id), rich:component(Id) &lt;br&gt;RichFaces 3.2需要JSF 1.2和JDK 5.0以上版本 &lt;br&gt;******* 这个上传文件是3.2.0 GA的组件库的分卷2 文件名:richfaces-ui-3.2.0.GA-bin...

    richfaces uploadfile出现event.getUploadItem() item.getData()空值的问题解决方法

    在使用RichFaces组件库中的`&lt;a4j:uploadFile&gt;`组件时,可能会遇到一个问题:通过`event.getUploadItem().getData()`获取上传文件数据时返回空值。这个问题通常与配置、文件上传处理逻辑以及环境设置有关。以下将详细...

    richface fileupload jar包

    3. **文件上传组件**:在 RichFaces 中,文件上传组件允许用户通过浏览器将文件发送到服务器。这在许多应用中是必需的,例如上传图片、文档或其他媒体文件。 4. **Apache Commons**:Apache Commons 是一系列独立的...

Global site tag (gtag.js) - Google Analytics