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

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

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

    隨筆 - 170  文章 - 536  trackbacks - 0
    <2006年3月>
    2627281234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    常用鏈接

    我參與的團隊

    隨筆分類(103)

    搜索

    •  

    積分與排名

    • 積分 - 413987
    • 排名 - 135

    最新評論

    閱讀排行榜

        好久都沒有去寫點東西了,不過最近也沒有太多的時間去專門研究一些東西,就把我在實踐中的一些經驗拿出來和大家分享。因為 iCustomer 這個使用 JSF 的項目,最近一直在嘗試解決一些過去遺留下來的問題,比如說驗證之類的,還有防止重復提交頁面,最后加上一個日期轉換的問題。
        先說一下驗證碰到的一些問題了,驗證的時候我使用的是 Shale 的 <s:commonsValidator> 組件,按照它提供的標準方法的話在應用中會碰到一些問題。按照標準的方法,我們應該在 <h:form> 中寫這樣的東西,<h:form onsubmit="return validateForm(this);">,但是這樣在 JSF 中會存在問題,當表單中有一個以上的 Action 事件或者 ValueChange 事件,我們知道,JSF的事件觸發時會提交表單,這是就會觸發<h:form>這個onsubmit里面的方法,所以這樣的話,任何事件都會觸發驗證,但我們的表單里只有一個保存的 Action,需要驗證輸入,而其它的 Action 或 ValueChange 并不要求執行驗證,這樣的話,標準的方法就不太適用了,我看公司項目組的方法是寫個方法,在不需要的時候調一個 JavaScript 把這個方法 Cancel 掉,但這樣也比較麻煩,我目前采用的方法就是在需要驗證的 Action 里面加上這樣的方法來進行驗證,也就是這樣 <t:commandButton id="save" value="#{msg['system.button.save']}" action="#{parameterBean.save}" onclick="return validateForm(this.form)"/> ,這樣的話,就只在我們需要驗證的幾個地方進行驗證。
        不過總的來說,Shale 提供的這種驗證方式有時候可能會顯得不夠靈活,我們過去在 struts 中有兩種方式,一種是針對 form 的驗證,另一種是針對 action 的驗證,如果我們要對某些表單元素在不同的 action 時執行不同的驗證規則,就可以使用 action 驗證了,但Shale 的這種方式就無能為力了。
        然后要介紹一個防止重復提交的方法。在網上找了很久,好像就是沒有人關注這個問題似的,不過這個問題在 struts 中有很不錯的方法,就是使用 token,其實我要介紹的也是和這個完全相同的解決辦法,很簡單,一句話解決問題。我們如果看了 Shale 的一些文檔的話,會注意到 Shale 里面有 <s:token> 這個標簽,對就是這個,我們只要在 form 里加入這個標簽的話,就可以了,如果重復提交的話,會提示出錯的,不過出錯信息是英文的,找了個比較暴力的方法,把信息改成中文的了,分享一下了,用 WinRAR 打開 shale-core.jar\org\apache\shale\resources,里面有一個 Bundle.properties 文件,把這個文件拿出來,把 token.invalid 改成你需要的信息,再把這個文件塞回去就可以了,比較暴力了,僅供應急使用,不推薦。
        剛才出去幫人家看一個問題,經過做 JSF 那個項目組,想起來一個關于日期格式化的問題,拿出來說明一下了,對于中國用戶,要把日期轉換的 timeZone 設置成GMT+8才能轉換正確,也就是這么寫 <f:convertDateTime pattern="dd/MM/yyyy" timeZone="GMT+8"/>。
    posted on 2006-03-07 09:57 steady 閱讀(2989) 評論(2)  編輯  收藏 所屬分類: JSF & Myfaces

    FeedBack:
    # re: 使用Shale巧妙解決JSF中的幾個難題 2006-09-19 14:13 wmh
    如果用了server端驗證的話,上面的做法只是饒開了client端

    s:token 在使用了valuechange 的form中也會有這種問題。
      回復  更多評論
      
    # re: 使用Shale巧妙解決JSF中的幾個難題 2006-09-19 14:16 wmh
    valuechange一次就認為是一次submit了 之后就不能再submit了  回復  更多評論
      
    主站蜘蛛池模板: 精品视频在线免费观看| 免费无遮挡无码视频在线观看| 久久精品免费一区二区三区| 亚洲国产精品狼友中文久久久 | 一级毛片免费观看不卡视频| 亚洲一区AV无码少妇电影☆| 成人免费观看男女羞羞视频| 亚洲AV无码一区二三区| 免费国产黄网站在线看| 亚洲无码高清在线观看| 天黑黑影院在线观看视频高清免费 | 久久久久亚洲精品天堂| 日韩一区二区三区免费播放| 波多野结衣免费视频观看| 免费人成视频在线播放| 亚洲午夜激情视频| 中文字幕版免费电影网站| 亚洲不卡av不卡一区二区| 最近最新高清免费中文字幕| 亚洲一区二区三区免费观看 | 99re6在线精品免费观看| 色婷婷亚洲十月十月色天| 91免费国产在线观看| 亚洲av永久无码一区二区三区| 狠狠躁狠狠爱免费视频无码| 中文字幕亚洲综合久久综合| 911精品国产亚洲日本美国韩国 | 国产精品hd免费观看| 亚洲av无码成人黄网站在线观看 | 亚洲成年人电影网站| 成年在线网站免费观看无广告| 国产亚洲欧美在线观看| 亚洲精品国产精品乱码不99| 99国产精品永久免费视频 | 国产一级高青免费| 久久精品国产亚洲AV无码娇色 | 亚洲色成人网站WWW永久四虎| 亚洲成A∨人片天堂网无码| 免费A级毛片无码A∨中文字幕下载| 最新亚洲春色Av无码专区| 综合久久久久久中文字幕亚洲国产国产综合一区首 |