Struts2验证通配符方法

时间:2010-11-20 00:34:10

标签: java struts2

我有一种情况,我在同一个动作类,method1和method2中有2个方法。下面是我在struts.xml中的动作映射

  < action name="actionName_*" class="sample.input.SubmitTest" method="{1}">
   < interceptor-ref name="defaultStak" />  
   < result name="input">info.jsp< result ends>
   < result name="success">info.jsp< result ends>
   < result name="error">error.jsp< result ends>
  < action ends>

method1和method2的验证规则不同,所以我有2个验证xml文件。 1:actionName_method1-validation.xml 2:actionName_method2-validation.xml

此配置符合http://struts.apache.org/2.1.6/docs/action-configuration.html#ActionConfiguration-DynamicMethodInvocation

我从JSP调用这些方法,如下所示,

< s:form action="actionName_" method="post">
    <!-- here goes the fields to be submitted -->
    <s:submit type="simple" method="method1" value="execute1"/>
    <s:submit type="simple" method="method2" value="execute2"/>
< s:form  end tag>

但由于某种原因,验证没有得到执行。我在这里遗漏了什么,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

错误在于s:提交,下面是正确的s:提交哪个有效

< s:form action="actionName_" method="post">
    < s:submit type="simple" action="actionName_method1" value="execute1"/>
    < s:submit type="simple" action="actionName_method2" value="execute2"/>
< s:form  end tag>

答案 1 :(得分:0)

我正在寻找这个问题的答案,但是这里出现的问题并没有解决我的问题。

要解决此问题,您必须应用@Rajesh解决方案(在action代码中使用method属性而不是<s:submit> 重命名验证文件,以使其符合以下规则:

<actionClass>-<actionAlias>-validation.xml

因此,验证文件应重命名为:

SubmitTest-actionName_method1-validation.xml
SubmitTest-actionName_method2-validation.xml

因为动作类是SubmitTest。

我希望这个答案可以帮助其他人解决使用通配符方法进行XML验证的问题。