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

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

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

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

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

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

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

    屬性

    類型

    說明

    必需

    id

    String


    value

    String

    上傳按鈕的標簽,如:value=”上傳

    size

    Number

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

    showList

    Boolean

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

    process

    Method

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

    Boolean process(QFile)

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

    這是一個必要的參數,使用該方法對已經上傳的文件進行保存處理,如下將文件保存至d:\myfile.rar

    public boolean process(QFile qfile) {

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

    qfile.save(myfile);

    return true;

    }

    rendered

    Boolean

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


































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

    QFaces 下載頁面 -- 基于JSF的Ajax增強框架。



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

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

    評論

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

    如果是組件自己渲染表單的話,你這個組件基本上沒啥用,因為一般文件上傳的file都會和其它的input組件同在一個表單里面  回復  更多評論   

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

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

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

    利用iframe完全可以實現你這個JSF組件  回復  更多評論   

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

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

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

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

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

    seam下MS不能用哦...
      回復  更多評論   

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

    @coffeefrog
    確實與seam不兼容哦
      回復  更多評論   

    導航

    統計

    公告

    文章原創,歡迎轉載
    ——轉載請注明出處及原文鏈接

    隨筆分類(60)

    隨筆檔案(33)

    最新評論

    評論排行榜

    主站蜘蛛池模板: 亚洲日韩精品无码专区加勒比☆| 乱爱性全过程免费视频| 免费一级成人毛片| 中文字幕视频免费在线观看| 亚洲精品高清无码视频| 免费H网站在线观看的| 一级女性全黄久久生活片免费| 亚洲激情中文字幕| 国产免费拔擦拔擦8x| 久久aa毛片免费播放嗯啊| 亚洲日本VA午夜在线影院| 亚洲A∨无码无在线观看| 亚洲AⅤ优女AV综合久久久| 特级无码毛片免费视频尤物| 国产精品亚洲а∨无码播放麻豆 | yy6080久久亚洲精品| 亚洲高清中文字幕免费| 最新亚洲成av人免费看| 午夜亚洲乱码伦小说区69堂| 亚洲精品白色在线发布| 国产又黄又爽又猛的免费视频播放 | 成人区精品一区二区不卡亚洲| 2048亚洲精品国产| 人禽杂交18禁网站免费| 久久精品国产免费一区| 狼人大香伊蕉国产WWW亚洲| 91在线亚洲综合在线| 1区1区3区4区产品亚洲| 亚洲午夜久久久影院伊人| 国产91久久久久久久免费| 18禁止观看免费私人影院| 免费无码av片在线观看| 国产成人亚洲午夜电影| 日本亚洲高清乱码中文在线观看| 亚洲国产精品日韩在线| 亚洲欧洲第一a在线观看| 91嫩草私人成人亚洲影院| 久久亚洲AV无码精品色午夜麻豆| 亚洲人成依人成综合网| 亚洲AV天天做在线观看| 亚洲美女视频一区二区三区|