Welcome

首页 / 脚本样式 / Ajax / QFaces1.2 --Ajax方式,带进度条的文件上传组件FileUpload(for JSF)

QFaces1.2 --Ajax方式,带进度条的文件上传组件FileUpload(for JSF)2011-09-27huliqing这是QFaces的第4个组件,Ajax方式带进度条的文件上传组件,我希望每一个重要组件都提升一个版本, 呵呵!这个版本同时修正了ie6下的ajax兼容问题.在介绍完这个组件之后,打算介绍一下如何利用QFaces自 定义自己的Ajax组件,希望这个增强框架能对喜欢JSF的人有一些帮助.后面版本的升级可能就不会这么快, 或者考虑兼容一下facelets,并修正一些可能出现的错误,还有开源计划,然后继续维护并增加一些比较常 用与实用的组件,关注一下JSF2.0的发展等等.

好了,下面介绍一下QFaces这个新成员吧:FileUpload , 下面是使用过程的截图,对于界面我没有太高 的要求,也没有开放相关的属性,还是简单使用为第一要素,如果你自定义组件,可以做出更酷或更花俏 的界面出来,呵呵!

组件的使用方法非常简单:

<q:fileUpload process="#{FileUploadBean.process}"/>

以下是html完整代码,需要注意的是组件不能放在form里面,因为组件会渲染自已的form标签:

<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF- 8">
<title>FileUpload Demo</title>
</head>
<body>
<q:fileUpload process="#{FileUploadBean.process}"/>
</body>
</html>
</f:view>

后台bean只要绑定一个处理方法就可以,简单的操作处理,将文件保存至本地硬盘,下面是demo中的示例 :

public boolean process(QFile qfile) throws Exception {
// 检查并创建用于保存上传文件的目录
File fileDir = new File("c:\my-qfaces-upload-file");
if (!fileDir.exists()) {
fileDir.mkdirs();
}
// 创建文件对象,并将上传的文件保存到该对象.
File upfile = new File(fileDir.getAbsolutePath() + "\" + qfile.getFilename ());
qfile.save(upfile);
return true;
}