2010-11-20 48 views
1

我有一种情况,我有2个方法在相同的操作类method1和method2。下面是我在struts.xml中的动作映射通配符方法Struts2验证

< 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> 

然而对于一些验证没有得到执行的原因。我在这里错过了什么,任何人都可以请帮忙吗?

回答

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> 
0

我一直在寻找一个回答这个问题,但出现在这里的人并没有解决我的问题。

为了解决这个问题,你必须应用@Rajesh溶液(使用action属性,而不是method<s:submit>标签)你必须重命名验证文件,使其符合以下规则:

<actionClass>-<actionAlias>-validation.xml 

所以验证的文件,在这种情况下,应该被重新命名为:

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

为一ction类是SubmitTest。

我希望这个答案可以帮助他人处理通配符方法的XML验证问题。