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

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

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

    Flyingis

    Talking and thinking freely !
    Flying in the world of GIS !
    隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
    數據加載中……

    重溫Struts--Validator和Tiles

    作者:Flyingis

    今天要回顧的是Validator、Tiles以及簡單的Plugin實現,剛剛登錄blogjava就發現Mustang已經發了兩篇好文《在Struts中使用Validator實現可配置的信息校驗() ()》,本文則從實現流程來總結Validator的使用方法,并針對Validator、TilesStruts PlugIn插件略談一些個人心得。

    Validator

    在使用ActionForm時,將數據的驗證工作放在validator()方法中雖說是一個可行的方法,但在ActionForm中編寫特定的驗證邏輯會降低ActionForm的重用性,并給系統的維護帶來麻煩。Validator框架可以將驗證邏輯移至ActionForm之外,實現Javascript客戶端驗證或服務器段驗證。具體實現Validator驗證步驟如下:

    1.        Validator是以plugin的方式來擴充ActionServlet功能的,需要在Struts-config.xml中聲明這個plugin。

    2.        導入Validator中的資源信息,用來向用戶提示驗證中出現的異常消息。Validator可以支持國際化信息,為每一個國際化信息提供對應的資源信息。

    3.        利用validaton.xml文件來定義用戶需要驗證的每一個JSP表單中的每一個字段的驗證規則,其中可以利用validator-rules.xml中已經設計好了的驗證器,也可以自定義驗證方式。

    4.        客戶端驗證需要validator-rules.xml中已提供的驗證規則,或是自定義規則,然后在jsp頁面中聲明<html:form action=“/action.do” onsubmit=“return validateActionForm(this);”>,加上可以生成實現驗證的Javascript代碼<html:javascript formName=“ActionForm” staticJavascript=“true”/>。服務器端驗證同樣需要validator-rules.xml中已提供的驗證規則,或是自定義規則,另外,實現驗證的ActionForm需要是DynaActionForm的子類,和客戶端驗證不同的是,在捕獲服務器端錯誤消息時,jsp頁面中需要嵌入代碼

    <html:messages id=“error”>

      <bean:write name=“error”/>

    </html:messages>

    在配置和設計Web系統驗證功能的時候,需要注意的是要理解在validaton.xml中定義驗證規則的時候每個參數的具體功能,我最初使用Validator的時候就因為參數混淆而驗證失敗,費了一點時間。還有就是自定義驗證規則時,需要注意每個參數的具體含義,例如在某種情況下,validaton.xml<var-name>myproperty</var-name>中自定義的屬性myproperty需要和自己編寫的驗證器類中的代碼一致等等。

    Tiles

    Tiles是一個模板機制,它可以讓網頁的配置框架和內容分離,提供一個版面管理機制。通常有兩種方式管理Tiles配置資源,一種使用XML,另一種使用JSP頁面直接管理。

    使用XML配置的Tiles可以支持國際化,例如可以另存為tiles-defs.xml并命名為tiles-defs_zh.xml,將encoding改為GB2312,這樣可以在配置中使用中文。使用XML配置文件可以方便的實現版面配置和內容的分離,并且能擴充某個定義,達到重新定義其中所管理頁面資源的目的。使用JSP頁面直接定義管理版面的配置資源更為簡單和靈活,同樣可以和xml一樣重新定義網頁的地址。不使用JSP框架頁面而是直接在JSP頁面中使用配置頁面,可以不用額外去定義管理文件,但缺點是無法重用這個頁面定義的內容。

    TilesCSS結合起來,基本上能滿足一般頁面控制的需要。

    PlugIn插件

    通過繼承ActionSerlvet,重寫它的init()方法,修改或增減它的初始化資源來達到改變ActionServlet功能的方法,這從軟件架構角度上來講并不是一個好方法。Struts1.1之后,可以通過PlugIn接口來實現動態增減ActionServlet功能的目的。ActionServlet加載后,會執行實現PlugIn接口的類的init()方法,在ActionServlet終止前,執行實現PlugIn接口的類的destroy()方法。ValidatorTiles就是利用這種方式來擴充Struts功能的。

    寫到這里,感覺使用好ValidatorTilesPlugIn插件最重要的就是對配置元素的理解,和程序調用流程的掌握,了解到Struts的插件機制是如何運轉的,以此來擴充Web應用程序的功能,提供更好的用戶體驗。

    posted on 2006-03-08 14:52 Flyingis 閱讀(1983) 評論(2)  編輯  收藏 所屬分類: Web 框架與開發

    評論

    # re: 重溫Struts--Validator和Tiles  回復  更多評論   

    再新增一個struts config文件,且在這個config中使用validator,但是validator不被裝載,為什么???!
    2006-05-17 11:20 | lj

    # re: 重溫Struts--Validator和Tiles  回復  更多評論   

    第一個config可以裝載validator,第二個不行?
    那你的config配置好了么?
    2006-05-17 11:48 | Flyingis
    主站蜘蛛池模板: 风间由美在线亚洲一区| 亚洲女女女同性video| 久99久无码精品视频免费播放| 成全高清视频免费观看| 亚洲国产成人久久77| 日韩亚洲国产高清免费视频| 亚洲午夜在线电影| 最近免费中文字幕大全高清大全1 最近免费中文字幕mv在线电影 | 亚洲伊人成无码综合网| 草久免费在线观看网站| 亚洲精品无码久久不卡| www在线观看播放免费视频日本| 亚洲一区无码精品色| 一个人免费视频在线观看www | 日本成年免费网站| 亚洲自偷自偷在线成人网站传媒| 青青青国产在线观看免费网站| 国产成人精品日本亚洲直接| 麻豆国产入口在线观看免费| 国产亚洲福利精品一区二区| 亚洲日韩v无码中文字幕| 99久久国产免费中文无字幕| 亚洲免费二区三区| 免费看国产曰批40分钟| 成人妇女免费播放久久久| 亚洲小视频在线观看| 女人18毛片水最多免费观看| 人人公开免费超级碰碰碰视频 | 好先生在线观看免费播放| 美女裸免费观看网站| 久久国产亚洲电影天堂| 91精品免费国产高清在线| 亚洲精品乱码久久久久久V | 亚洲欧洲国产视频| 日韩视频在线免费| 精品国产麻豆免费人成网站| 亚洲日本乱码卡2卡3卡新区| 国产精品亚洲综合专区片高清久久久| 久久精品电影免费动漫| 综合偷自拍亚洲乱中文字幕| 久久精品国产亚洲夜色AV网站|