——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。
一、使用校驗規則創建Person-validation.xml文件
為了利用WebWork校驗框架實現數據校驗有兩件事情要做,第一是創建一個validation.xml文件,第二是在需要進行校驗的action中加入一個校驗interceptor引用。
WebWork允許兩種類型的校驗 —— per-action和model-based。因為所有的Action對Person引用都要使用相同的校驗規則,所以本文將使用model-based類型的校驗。
在src/dao/**/model目錄下創建Person-validation.xml文件并加入下列內容:
在ApplicationResources_*.properties文件中的"errors.message" 鍵值使用字段的"name"屬性以實現國際化。如果不需要提供對i18n的支持可以直接對<message>元素中指定顯示內容。
現在可以配置PersonAction使用visitor validation。為了實現這個目標,在PersonAction目錄下創建一個PersonAction-validation.xml文件。加入下面的內容:
糟糕的是,WebWork沒有提供一個透明機制讀取Person-validation.xml文件并且標記在UI上標記哪個字段時必須的。 AppFuse的Struts和Spring版本使用LabelTag實現了這個目標,不過他們也只是實現了一個普通的校驗。我希望有人能夠為 WebWork提供相同的功能實現。同時JSP tags "required" 屬性實際上沒有對你所指定的校驗規則作任何事情,僅僅是在加入對應的字段后面加入了一個星號而已。
當然,也可以使用per-action校驗。只需要拷貝Person-validation.xml文件到"webapp.action"包中并且把它重命名為PersonAction-validation.xml。
為了使在"savePerson" 操作中我們新加入的校驗規則發揮作用,我們要把原來在"validator"屬性上的注釋去掉。確定最后在web/WEB- INF/classes/xwork.xml文件的"savePerson" <action> 部分包含以下內容:
說明:在Appfuse中使用的validationStack和WebWork自帶的有些不同,更多的信息可以在WebWork's JIRA中查找。
Powered by: BlogJava Copyright © rogerfan