我正在创建一个struts2应用程序,它有一个登录页面和另一个用户详细信息页面。在那里,我只需要创建一个动作类。因此,我无法通过将两个页面中的字段验证添加到action-validation.xml来运行应用程序。因为通过登录页面验证,它验证validation.xml中的剩余字段验证(属于用户详细信息页面的字段验证)。
因此,请在struts2中分享您的知识,以便为两个页面(表单)验证使用一个带有action-validation.xml的操作类。
答案 0 :(得分:0)
您可以使用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>
然后,您可以使用以下两个网址之一调用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 。由于用户登录和用户详细信息请求都使用该类,因此将为它们运行规则。