Struts 2 - повторное использование средства проверки пользовательских выражений
В распорках 2 мы можем разработать@CustomValidator
которые могут быть использованы в широком применении
@CustomValidator(type = "CustomerNumberValidator", fieldName = "customerNo")
Для валидации БОЛЬШЕ ЧЕМ ОДНО ПОЛЕ мы используем@ExpressionValidator
@ExpressionValidator(expression =
"( (!''.equals(account.firstName) && (!''.equals(account.lastName) )
|| (presonalAccount == false)",
key = "validate.account.name")
Если выражение слишком сложное и должно работать на БОЛЕЕ ОДНОМ ПОЛЕ, мы используем OGNL для вызова статического метода. Статический метод выполнит проверку и вернетboolean
например
@ExpressionValidator(expression = "@foo.bar.CalendarUtil@compareDates(fromDate,toDate)", key = "validate.date.before")
Выше кое-какизготовленный на заказ Валидатор выражений! И мы используем@foo.bar.CalendarUtil@compareDates
в приложении, чтобы сделать эту проверку для нас.
Есть ли другой подход, который позволяет нам использовать пользовательский широкий валидатор ?! Существует ли какой-либо специальный валидатор выражений, который можно добавить в Struts, и мы можем вызывать его в действии так, как используем@CustomValidator