<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    QFaces1.2 -- Ajax方式,帶進(jìn)度條的文件上傳組件FileUpload(for JSF)

         這是QFaces的第4個(gè)組件,Ajax方式帶進(jìn)度條的文件上傳組件,我希望每一個(gè)重要組件都提升一個(gè)版本,呵呵!這個(gè)版本同時(shí)修正了ie6下的ajax兼容問題.在介紹完這個(gè)組件之后,打算介紹一下如何利用QFaces自定義自己的Ajax組件,希望這個(gè)增強(qiáng)框架能對喜歡JSF的人有一些幫助.后面版本的升級可能就不會(huì)這么快,或者考慮兼容一下facelets,并修正一些可能出現(xiàn)的錯(cuò)誤,還有開源計(jì)劃,然后繼續(xù)維護(hù)并增加一些比較常用與實(shí)用的組件,關(guān)注一下JSF2.0的發(fā)展等等.

        好了,下面介紹一下QFaces這個(gè)新成員吧:FileUpload , 下面是使用過程的截圖,對于界面我沒有太高的要求,也沒有開放相關(guān)的屬性,還是簡單使用為第一要素,如果你自定義組件,可以做出更酷或更花俏的界面出來,呵呵!

       


    組件的使用方法非常簡單:

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

    以下是html完整代碼,需要注意的是組件不能放在form里面,因?yàn)榻M件會(huì)渲染自已的form標(biāo)簽:
    <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>

    后臺(tái)bean只要綁定一個(gè)處理方法就可以,簡單的操作處理,將文件保存至本地硬盤,下面是demo中的示例:

        public boolean process(QFile qfile) throws Exception {
            
    // 檢查并創(chuàng)建用于保存上傳文件的目錄
            File fileDir = new File("c:\\my-qfaces-upload-file");
            
    if (!fileDir.exists()) {
                fileDir.mkdirs();
            }
            
    // 創(chuàng)建文件對象,并將上傳的文件保存到該對象.
            File upfile = new File(fileDir.getAbsolutePath() + "\\" + qfile.getFilename());
            qfile.save(upfile);
            
    return true;
        }

    組件已經(jīng)幫你處理了很多繁瑣的事情,你可以從QFile這個(gè)對象中獲得上傳文件的大小,原始文件名,后綴名,寬度,高度(如果是圖片),再進(jìn)一步進(jìn)行處理等等.

    下面是組件的所有可用屬性,除了必要的紅色屬性之外,其它的都是可選的:

    屬性

    類型

    說明

    必需

    id

    String


    value

    String

    上傳按鈕的標(biāo)簽,如:value=”上傳

    size

    Number

    組件寬度,如:size=”20”

    showList

    Boolean

    是否顯示已成功上傳的文件列表,如:showList=”true”

    process

    Method

    方法綁定,該方法用于處理上傳文件,方法簽名如下:

    Boolean process(QFile)

    該方法接受一個(gè)QFile類型的參數(shù),處理文件保存之后返回true/false以表示處理成功或失敗.

    這是一個(gè)必要的參數(shù),使用該方法對已經(jīng)上傳的文件進(jìn)行保存處理,如下將文件保存至d:\myfile.rar

    public boolean process(QFile qfile) {

        File myfile = new File(“d:\myfile.rar”);

    qfile.save(myfile);

    return true;

    }

    rendered

    Boolean

    是否顯示組件,如:rendered=”false”


































    更多的設(shè)置需要修改web.xml,比如: uploadMaxSize, uploadThresholdSize, uploadTemp等,文檔中有完整的說明,下面是下載地址 :

    QFaces 下載頁面 -- 基于JSF的Ajax增強(qiáng)框架。



    - huliqing@huliqing.name
    - http://www.huliqing.name

    posted on 2008-11-28 17:34 huliqing 閱讀(3021) 評論(7)  編輯  收藏 所屬分類: JSF

    評論

    # re: QFaces1.2 -- Ajax方式,帶進(jìn)度條的文件上傳組件FileUpload(for JSF)[未登錄] 2008-11-28 17:50 jones

    如果是組件自己渲染表單的話,你這個(gè)組件基本上沒啥用,因?yàn)橐话阄募蟼鞯膄ile都會(huì)和其它的input組件同在一個(gè)表單里面  回復(fù)  更多評論   

    # re: QFaces1.2 -- Ajax方式,帶進(jìn)度條的文件上傳組件FileUpload(for JSF) 2008-11-28 18:09 huliqing

    @jones
    呵呵,你的意見很好。
    這個(gè)我也想到了,但是如果與其它組件放在同一個(gè)表單里的話,那就變成了,要么與表單的其他組件一起變成ajax方式提交處理,要不就與其他組件一起正常提交表單(非Ajax方式),
    但是與其他組件一起進(jìn)行ajax提交處理的話,會(huì)存在一些問題,可能在通用性上不夠好,因?yàn)槭莂jax方式的,所以存在一些特殊的地方,目前我還找不到更好的方法。
    不過myfaces組件包中就有一個(gè)可以與其他組件一起提交的上傳組件,但它不是ajax方式的。  回復(fù)  更多評論   

    # re: QFaces1.2 -- Ajax方式,帶進(jìn)度條的文件上傳組件FileUpload(for JSF)[未登錄] 2008-11-28 19:39 jones

    利用iframe完全可以實(shí)現(xiàn)你這個(gè)JSF組件  回復(fù)  更多評論   

    # re: QFaces1.2 -- Ajax方式,帶進(jìn)度條的文件上傳組件FileUpload(for JSF)[未登錄] 2008-11-28 19:41 jones

    以前我們項(xiàng)目中一個(gè)jsf文件ajax上傳組件就是用iframe實(shí)現(xiàn)的(如果嫌自己寫麻煩可以用jquery的ajaxfileupload插件,更簡單),只不過是進(jìn)度條改成了提示信息,跟你這個(gè)功能大同小異。  回復(fù)  更多評論   

    # re: QFaces1.2 -- Ajax方式,帶進(jìn)度條的文件上傳組件FileUpload(for JSF) 2008-11-28 19:58 huliqing

    @jones
    我在組件中也使用了iframe, 我也明白使用這個(gè)可以處理這樣的功能的,只不過我需要處理form中的action指定到我特定的過濾器,否則就需要在web.xml中再增加過濾器的設(shè)定,這樣處理完全是可以作到的,并且可以做到與所有其它input一同提交表單,但是我發(fā)現(xiàn)這個(gè)可能會(huì)與myfaces的過濾器存在沖突,在重寫HttpServletRequest之后可能會(huì)與myfaces的過濾器沖突,所以我暫時(shí)把他作為單獨(dú)的組件處理.并且這在某些情況下也是很有用的.  回復(fù)  更多評論   

    # re: QFaces1.2 -- Ajax方式,帶進(jìn)度條的文件上傳組件FileUpload(for JSF) 2009-02-24 11:08 coffeefrog

    seam下MS不能用哦...
      回復(fù)  更多評論   

    # re: QFaces1.2 -- Ajax方式,帶進(jìn)度條的文件上傳組件FileUpload(for JSF) 2009-02-26 07:39 huliqing

    @coffeefrog
    確實(shí)與seam不兼容哦
      回復(fù)  更多評論   

    導(dǎo)航

    統(tǒng)計(jì)

    公告

    文章原創(chuàng),歡迎轉(zhuǎn)載
    ——轉(zhuǎn)載請注明出處及原文鏈接

    隨筆分類(60)

    隨筆檔案(33)

    最新評論

    評論排行榜

    主站蜘蛛池模板: 亚洲国产一区在线| 亚洲精品国产日韩无码AV永久免费网| a级毛片高清免费视频就| fc2成年免费共享视频18| 国产无限免费观看黄网站| 亚洲一区二区三区免费在线观看| 麻豆一区二区免费播放网站 | 久久久精品免费国产四虎| 日本视频一区在线观看免费| 久久久久亚洲精品无码蜜桃| 亚洲成a人片在线不卡一二三区| 好吊色永久免费视频大全 | 亚洲av片不卡无码久久| 曰批全过程免费视频观看免费软件| 暖暖日本免费中文字幕| 四虎永久免费地址在线网站| 在线A亚洲老鸭窝天堂| 一本色道久久88—综合亚洲精品| 一级视频免费观看| 免费毛片在线视频| 内射干少妇亚洲69XXX| 7x7x7x免费在线观看| 国产乱辈通伦影片在线播放亚洲 | 亚洲中文无码卡通动漫野外| 啦啦啦在线免费视频| 亚洲精品美女在线观看播放| 国产免费久久精品丫丫| 亚洲国产精品久久久久婷婷软件| 免费阿v网站在线观看g| 女人裸身j部免费视频无遮挡| 国产精一品亚洲二区在线播放| 亚洲AV无码专区国产乱码不卡| 91禁漫免费进入| 亚洲中文字幕一二三四区| 亚洲日本在线观看视频| 一级中文字幕乱码免费| 亚洲精品动漫在线| 免费在线观看视频a| 亚洲AV成人无码网天堂| 亚洲AV无码一区二区乱子伦| 中文字幕不卡免费高清视频|