Какова цель init binder весной MVC - PullRequest
60 голосов
/ 06 марта 2011

Это код в Интернете для init binder

@InitBinder
public void initBinder(WebDataBinder binder) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}

Может кто-нибудь объяснить, пожалуйста:

1) Почему это используется, я имею в виду, в чем была проблема раньше, как она была решена с помощью этой функции. поэтому я хочу знать, что было проблемой с оригинальной датой, которая была решена с этим форматом даты?

2) Как использовать этот формат с точки зрения формы JSP, я имею в виду, если мы вводим дату в текстовом формате, она преобразуется в определенный формат и затем сохраняет ее?

3) Как применяется это форматирование, я имею в виду, нужно ли что-то делать в классе объектов?

1 Ответ

55 голосов
/ 06 марта 2011

1) Раньше приходилось прибегать к ручному разбору даты:

 public void webmethod(@RequestParam("date") String strDate) {
    Date date = ... // manually parse the date
 }

Теперь вы можете получить проанализированную дату напрямую:

 public void webmethod(@RequestParam("date") Date date) {
 }

2) Если ваша страница jsp содержит дату в форме yyyy-MM-dd, вы можете извлечь ее как объект Date непосредственно в контроллере.

3) Spring пытается против всех зарегистрированных редакторов проверить, можно ли преобразовать значения в объекты. Вам не нужно ничего делать в самом объекте, в этом его прелесть.

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