Предотвращение проверки Struts 2 для определенного действия

У меня есть два действия в другом классе действий. Два действия:

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

Оба используют объект 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 в качестве поля), для 2-го действия, которое включает поле 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-го действия)


person Hardik Bhalani    schedule 19.03.2014    source источник
comment
Вы применяли эти аннотации к классу или к методу класса&   -  person Roman C    schedule 19.03.2014
comment
на методе класса   -  person Hardik Bhalani    schedule 19.03.2014
comment
При проверке xml вы можете использовать для этого параметр context: struts.apache .org/development/2.x/docs/visitor-validator.html.   -  person Aleksandr M    schedule 20.03.2014


Ответы (1)


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

interceptorRefs = @InterceptorRef(value="defaultStack", params = {"validation.validateAnnotatedMethodOnly", "true"})
person Roman C    schedule 19.03.2014
comment
не работает .. я пробовал выполнять оба действия одно за другим, а также одновременно - person Hardik Bhalani; 20.03.2014
comment
распорки версии 2.3.16 - person Hardik Bhalani; 20.03.2014