В Struts 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, и мы можем вызвать его в Action
так же, как мы используем @CustomValidator
?