Struts2 如何在一个表单中有多个提交按钮的情况下在side action类中执行验证
我最初有2个字段&submit在成功验证后,我需要在服务器端验证这些字段 所以第一次使用validate()第一次提交第二次我想做服务器端验证Struts2 如何在一个表单中有多个提交按钮的情况下在side action类中执行验证,struts2,Struts2,我最初有2个字段&submit在成功验证后,我需要在服务器端验证这些字段 所以第一次使用validate()第一次提交第二次我想做服务器端验证 <s:form action="some.action" method="post" theme="simple" name="someForm" > <td ><s:label value="StdNumber:" /></td> <td ><s:textfield name="
<s:form action="some.action" method="post" theme="simple" name="someForm" >
<td ><s:label value="StdNumber:" /></td>
<td ><s:textfield name="StdNum" theme="simple" /></td>
<td ><s:label value="Date of Birth:"/></td>
<td ><s:textfield size="10" name="dateOfBirth" id="dateOfBirth" onclick="displayCalendar(document.forms[0].dateOfBirth,'ddd-MM-yyyy',this)" />
<s:submit cssClass="button" value="Submit" name ="submitbtn" id="submitbtn" method="getEduInfo" /></td>
<s:if test="sucess">
<td ><s:textfield name="Stdname" theme="simple" /></td>
<td ><s:label value="marks:"/></td>
<td ><s:textfield size="10" name="marks" /></td>
<s:submit method="getPersonalInfo" value="submit"/>
</s:if>
</s:form>
要以不同方式验证字段,应获取按钮的名称 在
validate()
if(buttonName.equals(yourFirstButtonName)) {
/* validation code for first two fields*/
} else if(buttonName.equals(yourSecondButtonName)) {
/* validation code for second two fields */
}
您可以通过向s:submit tag
赋予name
属性来获取按钮名称,并将getters
和setters
写入该名称。您可以使用带注释的验证。
如果我们假设您的action类中有两个方法:
1) 公共字符串getEduInfo(){…}
2) 公共字符串getPersonalInfo(){…}
只需对它们中的每一个使用@Validations
注释,并在其中放置适当的验证
请记住,为验证
拦截器在true
上设置验证NotatedMethodOnly
参数:
<interceptor-ref name="validation">
<param name="validateAnnotatedMethodOnly">true</param>
</interceptor>
真的
因此,您可以为不同的方法调用不同的验证