我已经在“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"
好的,我的问题是如果这是唯一的可能性,为什么我们懒得指定呢?或者如果这个声明不是唯一的选择,请提供一个例子。
感谢。
答案 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”可以更改。