【问题标题】:How to write one action class and action-validation.xml to validate two forms in a two different jsp pages by struts2struts2如何编写一个动作类和action-validation.xml来验证两个不同jsp页面中的两个表单
【发布时间】:2010-08-04 12:54:04
【问题描述】:

我正在创建一个 struts2 应用程序,它有一个登录页面和另一个用户详细信息页面。在那里,我只需要创建一个动作类。因此,我无法通过将两个页面中的字段验证添加到 action-validation.xml 来运行应用程序。因为通过登录页面验证,它会验证validation.xml 中剩余的字段验证(属于用户详细信息页面的字段验证)。

因此,请分享您在 struts2 中的知识,以使用带有 action-validation.xml 的一个动作类进行两个页面(表单)验证。

【问题讨论】:

    标签: java struts2 validation


    【解决方案1】:

    您可以将wildcard mappings 和associating your validation rules 与您的单个操作类一起使用:

    通配符映射

    在您的 struts.xml 中,定义如下操作:

    <action name="user-*" class="DoSomething" method="{1}" >
        <result name="input">/WEB-INF/{1}.jsp</result>
        <result name="success">/WEB-INF/{1}-success.jsp</result>
    </action>
    

    然后您可以使用以下两个 URL 之一调用 DoSomething 操作类:

    http://yourapp.com/user-login.action
    http://yourapp.com/user-details.action
    

    结果将是连字符之后的请求部分(“登录”或“详细信息”)将替换您的操作定义中的{1}。因此,第一个 URL 将调用 DoSomething.login() 方法,转到 INPUT 上的 login.jsp 或 SUCCESS 上的 login-success.jsp。

    您所要做的就是在DoSomething 类中定义login() 和details() 方法。

    验证规则关联

    要将验证规则与您的 DoSomething 操作类相关联,只需将包含它们的 .xml 文件命名为 DoSomething-validation.xml。由于用户登录和用户详细信息请求都使用该类,因此将为它们运行规则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 2011-03-25
      • 2016-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多