У меня есть два действия в разных классах действий. Два действия:
Оба используют объект 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-го действия)
Добавьте в конфигурацию действия следующий параметр, это позволяет предотвратить запуск валидаторов на другие действия/методы, а не называться.
interceptorRefs = @InterceptorRef(value="defaultStack", params = {"validation.validateAnnotatedMethodOnly", "true"})