2009-07-21 47 views
0

我已經在書籍「Jakarta Struts Live」中檢查了驗證器源代碼和用戶定義規則的示例。當人們定義驗證 - rules.xml中驗證規則,「methodParams」下面的聲明似乎是唯一的選擇:爲什麼我們必須在struts驗證插件中指定「methodParams」?

methodParams="java.lang.Object, 
        org.apache.commons.validator.ValidatorAction, 
        org.apache.commons.validator.Field, 
        org.apache.struts.action.ActionMessages, 
        org.apache.commons.validator.Validator, 
        javax.servlet.http.HttpServletRequest" 

好吧,我的問題是,如果這是唯一的可能性,爲什麼我們費心指定它?或者,如果這個聲明不是唯一的選擇,請給我一個例子。

謝謝。

回答

0

請看看這個鏈接: http://struts.apache.org/1.1/userGuide/dev_validator.html 它說:

methodParams屬性,需要 逗號分隔的類名列表。 方法屬性需要有一個 簽名符合上述 列表。該列表可以由任何 的組合組成:

java.lang.Object - Bean驗證是 正在執行。 org.apache.commons.validator.ValidatorAction - 正在執行當前的ValidatorAction。 org.apache.commons.validator.Field - 正在驗證的字段對象。 org.apache.struts.action.ActionErrors - 如果驗證 失敗,則將錯誤對象添加到ActionError。 javax.servlet.http.HttpServletRequest - 當前請求對象。 javax.servlet.ServletContext - 應用程序的ServletContext。 org.apache.commons.validator.Validator - 當前的org.apache.commons.validator.Validator 實例。 java.util.Locale - 當前用戶的區域設置。

看起來「methodParams」可以是列出類型的任意組合,而Strurs Validator Plugin會相應地將實例注入到驗證函數調用中。

「methodParams」可以更改。

相關問題