Запрет проверки Struts 2 для определенных действий

1

У меня есть два действия в разных классах действий. Два действия:

  • 1-е действие (поля: электронная почта)
  • Второе действие (поля: электронная почта, firstName)

Оба используют объект User для проверки полей

@VisitorFieldValidator(appendPrefix = false)
    public User getUser() {
        return user;
    }

и свойства проверки привязки в классе User как

@RequiredStringValidator(key="global.emptyemail")
    @EmailValidator(key="global.invalidemail")
    public String getEmail() {
        return email;
    }

Теперь проблема в том, что она отлично работает для 1st action (которое не включает firstName как поле), для второго действия, которое включает в себя поле firstName я предоставил

@RequiredStringValidator(key="global.firstNameRequired", fieldName = "firstName")
    @RegexFieldValidator(type=ValidatorType.FIELD, key="global.SpecialCharacter",
            regexExpression = "[^&%$#@!~]*", fieldName = "firstName")
    public String getFirstName() {
        return firstName;
    }

с этим 1-м действием перестала работать, может быть, он собирается искать firstName которого нет

Итак, как сделать валидацию для firstName для выполнения только для 2-го действия? (не для 1-го действия)

Теги:
validation
struts2
annotations
struts2-interceptors

1 ответ

0

Добавьте в конфигурацию действия следующий параметр, это позволяет предотвратить запуск валидаторов на другие действия/методы, а не называться.

interceptorRefs = @InterceptorRef(value="defaultStack", params = {"validation.validateAnnotatedMethodOnly", "true"})
  • 0
    не работает .. я пробовал это положить оба действия по одному, а также в то же время
  • 0
    у меня работает, какая версия Struts?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню