2012-06-15 2 views
2

Справочная информация: Я использую Struts2 с плагинами REST и Convention, поэтому около 99% моих настроек находятся в классах, которые я пишу, а не в xml-файлах. С Конвенцией, вы можете настроить сервер и на сторону клиента валидации с аннотациями на методе, например, Счет Создать метод я использую, выглядит так:Перехватчик проверки подлинности Struts2 собирается в xhtml документ

@Validations(
     requiredFields = { 
       @RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "userName", message = "You must enter a value for field."), 
       @RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "firstName", message = "You must enter a value for field."), 
       @RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "lastName", message = "You must enter a value for field."), 
       @RequiredFieldValidator(type = ValidatorType.SIMPLE, fieldName = "password", message = "You must enter a value for field.") 
     }, 
     emails = {@EmailValidator(type = ValidatorType.SIMPLE, fieldName = "email", message = "You must enter a value for email.")}, 
     stringLengthFields = { 
       @StringLengthFieldValidator(type = ValidatorType.SIMPLE, trim = true, minLength = "6", maxLength = "16", fieldName = "userName", message = "Username must be at least 6 letters."), 
       @StringLengthFieldValidator(type = ValidatorType.SIMPLE, trim = true, minLength = "8", maxLength = "16", fieldName = "password", message = "Password must be at least 8 characters.") 
     } 
) 
public String create() { 
    //create the account 
} 

Это прекрасно работает, The Javascript правильно толкнул к JSP, форма проверяется до того, как они попадут в submit, и проверка на стороне сервера отлично работает. Если все условия выполнены, метод create() называется правильно и все работает.

Проблема заключается в том, что проверка на стороне клиента отключена и завершается с ошибкой на стороне сервера. Вся документация говорит мне, что перехватчик Validation отправляет пользователя обратно в форму с правильными полевыми ошибками, установленными для того, чтобы пользователь мог исправить свою проблему, но в моем приложении он просто перенаправляется на совершенно пустую страницу.

Вопрос - Как сообщить о перехватчике проверки, в котором форма должна быть перенаправлена ​​так, чтобы значения могли быть заполнены, и полевые правила могут быть правильно установлены?

ответ

0

, не зная вашей конфигурации, трудно сказать, что пошло не так.

Я думаю, что вы только настроили перехватчик проверки для действия Пример:

// this is wrong 
<action name="doSomething" class="DoSomethingAction"> 
    <interceptor-ref name="validation"> 
    </interceptor-ref> 
</action> 

Вот только называется перехватчик проверки, но не другие перехватчики, как рабочий процесс

// this is better 
<action name="doSomething" class="DoSomethingAction"> 
    <interceptor-ref name="defaultStack"> 
    </interceptor-ref> 
</action> 
Смежные вопросы