Проверка весны - BindingResult - PullRequest
       2

Проверка весны - BindingResult

5 голосов
/ 25 января 2012

Я пытаюсь понять, что BeanPropertyBindingResult делает в следующем коде.К сожалению, javadoc совершенно бесполезен.

Пожалуйста, взгляните на следующий код:

BeanPropertyBindingResult errors = new BeanPropertyBindingResult(item, "item");
validator.validate(item, errors);

Мои вопросы:

  1. Насколько я вижу, BeanPropertyBindingResult - это, по сути, своего рода Map, который может содержать пары ключ / значение (имя поля, текст ошибки).Правильно ли это, или правда сложнее?

  2. Когда я создаю новый BeanPropertyBindingResult, почему мне нужно предоставить его (в качестве первого параметра конструктора) объектом Iсобираюсь проверить?Насколько я могу видеть, во второй строке выше, validator.validate(item, errors); валидатор получает объект в любом случае .. так зачем делать это дважды?

  3. Javadoc говорит о втором параметре конструктора:

objectName - имя целевого объекта

да, но зачем мне это имя?Что я должен / могу сделать с этим ...?

1 Ответ

1 голос
/ 26 января 2012

1) Да, это тоже мое понимание, даже если это технически список.- Самая важная часть List<ObjectError> errors определена в суперклассе AbstractBindingResult.

2), поскольку этого требует интерфейс BindingResult.- Я знаю, что это не очень хороший ответ, но если для этих интерфейсов требуется такой метод, то нет другого способа его реализовать Кстати: я думаю, что раньше видел какой-то пример, где автор использовал nullдля этого поля, но я не на 100%, если он работает правильно, но большинство швов кода, чтобы иметь возможность обрабатывать нулевое значение.

3) Если вы используете этот результат привязки, например, в JSP дляпоказать сообщения об ошибках для разных полей ввода, тогда это должно соответствовать имени атрибута модели.

Предположим, у вас есть объект команды с полем name.И страница JSP, где входные данные связаны с myCommand.name.Тогда вам нужно имя myCommand в качестве какого-то префикса для ошибок привязки.- Сложно объяснить, надеюсь, вы понимаете, о чем я

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