如何编写一个动作类和action-validation.xml来通过struts2验证两个不同jsp页面中的两个表单

时间:2010-08-04 12:54:04

标签: java struts2 validation

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

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

1 个答案:

答案 0 :(得分:0)

您可以使用wildcard mappingsassociating 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>

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

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

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

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

验证规则协会

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