代码之家  ›  专栏  ›  技术社区  ›  Winston Chen

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

  •  0
  • Winston Chen  · 技术社区  · 15 年前

    我已经检查了“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 回复  |  直到 15 年前
        1
  •  0
  •   Winston Chen    15 年前

    请查看此链接: http://struts.apache.org/1.1/userGuide/dev_validator.html 它说:

    methodParams属性采用 以逗号分隔的类名列表。 方法属性需要具有 符合上述要求的签名 名单。列表可以由 以下各项的组合:

    java.lang.object-bean验证是 正在执行。 org.apache.commons.validator.validator操作 -正在执行的当前validatoraction。 org.apache.commons.validator.field网站- 正在验证字段对象。 org.apache.struts.action.actionErrors(操作错误) -如果验证 失败。 javax.servlet.http.httpservletrequest请求 -当前请求对象。javax.servlet.servletContext-服务器 应用程序的servletContext。 org.apache.commons.validator.validator验证程序 -当前的org.apache.commons.validator.validator 实例。java.util.locale-区域设置 当前用户的区域设置。

    似乎“methodparams”可以是所列类型的任意组合,strurs validator插件将相应地将实例注入到验证函数调用中。

    “methodParams”可以更改。