看一下validator-rules.xml的內容可以幫助您瞭解如何自訂驗證器,以下擷取一個片斷作為參考:
... 在<javascript>標籤之間的,是用來撰寫自訂客戶端驗證的JavaScript時使用,要使用它必須在JSP頁面的表單提交按鈕上增加onsubmit事件處理,例如: <html:form action="Login" onsubmit="return validateLoginForm(this);">
然後在JSP頁面中使用<html:javascript/>標籤將所需的JavaScript寫出: <html:javascript formName="loginForm"/>
<javascript>會自動生成JavaScript validateXXXX()方法,其中XXXX是ActionForm名稱,在客戶端當按下按鈕時,validateXXXX()方法會被呼叫並執行客戶端的JavaScript驗證工作。 在伺服端,您要撰寫一個驗證類別,該類別必須包括static的validateXXX()方法,並必須包括指定的參數,最後傳回true或false表明驗證成功或失敗,例如: public class MyValidator implements Serializable {
public static boolean validateSomeProperty( Object object, ValidatorAction action, Field field, ActionErrors errors, HttpServletRequest request) { ........ } } 如果驗證失敗,errors可以讓您將一些驗證失敗訊息加入其中,最後可使用<html:messages>顯示在指定的頁面上。 自訂Validator時,預設都是找尋application.properties中的key-value對應,如果需要額外的訊息,可以在該檔案中加入。 有關更多自訂驗證器的方式,可以參考validator-rules.xml與Validator的原始碼檔案。 |
|