为什么我们必须在struts验证插件中指定“methodParams”?

时间:2009-07-21 02:53:37

标签: java jsp plugins java-ee struts

我已经在“Jakarta Struts Live”一书中检查了验证器源代码和用户定义规则的示例。当人们在validator-rules.xml中定义验证器规则时,“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"

好的,我的问题是如果这是唯一的可能性,为什么我们懒得指定呢?或者如果这个声明不是唯一的选择,请提供一个例子。

感谢。

1 个答案:

答案 0 :(得分:0)

请看一下这个链接: http://struts.apache.org/1.1/userGuide/dev_validator.html 它说:

  

methodParams属性需要一个   逗号分隔的类名列表。   method属性需要有一个   签名符合上述规定   名单。该列表可以包含任何列表   结合以下内容:

     

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 - The   应用程序的ServletContext。   org.apache.commons.validator.Validator    - 当前的org.apache.commons.validator.Validator   实例。 java.util.Locale -   当前用户的区域设置。

似乎“methodParams”可以是所列类型的任意组合,Strurs Validator Plugin会相应地将实例注入验证函数调用。

“methodParams”可以更改。