在弹簧 MVC 中使用 init 绑定器的目的是什么

这是因特网上 init 活页夹的代码

@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)它是如何应用格式化的,我的意思是,我们必须在对象类中做一些事情吗?

60139 次浏览

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 尝试所有已注册的编辑器,以查看是否可以将值转换为对象。你不必在物体本身做任何事情,这就是它的美妙之处。