這是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;
}