Какой самый ЛУЧШИЙ ПОДХОД для проверки команды Spring-MVC (ускоряет реализацию проверки на стороне сервера)? (Весна-MVC) - PullRequest
3 голосов
/ 07 августа 2009

Я начинаю новый проект Spring-MVC. Валидация является важной особенностью любого проекта. Таким образом, я видел много подходов следующим образом:

  • Интерфейс пружинного валидатора

Звучит как проверка Struts 1.x. На мой взгляд, это не ловко.

  • Commons Validator

Я думаю, что это лучше, чем интерфейс Validator

  • Проверка на основе аннотаций (модули Spring)

Кажется, что это гибко, но я не знаю, поддерживает ли оно свойство на основе коллекции

Итак, какой, на ваш взгляд, самый ЛУЧШИЙ ПОДХОД для проверки команды Spring-MVC? И почему ? Рассмотрим многие функции, такие как свойство на основе коллекции, пользовательская проверка и т. Д. Если вы знаете / используете другой подход в Spring-MVC, не стесняйтесь делиться им.

С уважением,

Ответы [ 2 ]

4 голосов
/ 07 августа 2009

"Agile" означает разные вещи для разных людей: -)

Тем не менее, Hibernate Validator очень удобен, если вы используете Hibernate в качестве ORM, потому что он позволяет вам указывать свои ограничения ОДИН РАЗ и распространять (некоторые из них) их в базу данных, работать на вашем бизнес-уровне и работать на уровне UI , Кроме того, в бета-версии 4.0 реализована JSR 303, которая, скорее всего, станет стандартным подходом к валидации в будущем.

Validator 3.1 имеет определенные проблемы с автоматической проверкой ограничений в коллекциях элементов, но это достаточно просто для исправления и / или обхода (уже было сделано, теперь работает отлично). Еще не перешли на бета-версию 4.0, поэтому я не знаю, было ли это исправлено.

Это определенно расширяемо - вы можете легко написать свои собственные ограничения.

2 голосов
/ 08 августа 2009

Как реализация Spring Validator не является гибкой? Вы можете ввести логику проверки самостоятельно. Насколько это сложно?

public void validate(Object target, Errors errors) {

    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "email",
     "error.blank.email", "Email address is required.");

    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", 
     "error.blank.name", "Name is required");

    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "phone",
     "error.blank.phone", "Phone is required");

    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "question", 
     "error.blank.question", "Question is required");
}

Очень проворный!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...