2010-11-20 45 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驗證問題。