2014-02-05 3 views
0

у меня изначально 2 поля & отправить после подтверждения успешно diplays еще несколько файлов с отправкой мне нужно проверить эти поля на стороне сервера , так что в первый раз у меня есть used validate() для первого раза, представленного во второй раз, я хочу сделать проверку на стороне сервера. Мне нужно сделать одно действие?Как выполнить проверки в классе побочных действий при наличии нескольких кнопок отправки в одной форме

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

ответ

2

Чтобы проверить поля по-разному, вы должны получить название кнопки.

В validate() вы должны написать как:

if(buttonName.equals(yourFirstButtonName)) { 

    /* validation code for first two fields*/ 

} else if(buttonName.equals(yourSecondButtonName)) { 

    /* validation code for second two fields */ 

} 

Вы можете получить имя кнопки, давая name атрибут s:submit tag и писать getters и setters к этому имени.

0

Вы можете использовать annotated validations. Если мы предположим, что у вас есть 2 метод в классе действия: 1) public String getEduInfo() {...}

2) public String getPersonalInfo() {...}

Просто используйте @Validations аннотации для каждого из них, и места там соответствующие валидаций.

Не забудьте установить validateAnnotatedMethodOnly параметр на true для validation перехватчика:

<interceptor-ref name="validation"> 
     <param name="validateAnnotatedMethodOnly">true</param> 
</interceptor> 

Благодаря этому, вы можете вызвать другую проверку для различных методов.

Смежные вопросы