Spring MVC中的init绑定的目的是什么?

这是init binder的互联网上的代码

@InitBinder public void initBinder(WebDataBinder binder) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); } 

任何人都可以请解释

1)为什么使用它我的意思是说什么是以前的问题,如何解决这个function。 所以我想知道什么是与这个date格式m解决的原始date的问题。

2)如何从JSP表单的angular度使用这种格式我的意思是如果我们inputdate的文本格式,它是否转换为特定的格式,然后保存

3)它是如何应用的,我的意思是,我们必须在对象类中做些什么

1)之前,你不得不求助于手动parsingdate:

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

现在你可以直接得到parsingdate:

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

2)如果你的jsp页面在表单yyyy-MM-dd上提供了一个date,你可以直接在你的控制器中将它作为一个Date对象获取。

3)Spring试着针对所有注册的编辑器来查看是否可以将值转换为对象。 你不必在物体本身做任何事情,这是它的美丽。

Spring自动将简单的数据(String,int,float等)绑定到命令bean的属性中。 但是,当数据更复杂时会发生什么情况,例如,当您想要以“1990年1月20日”格式捕获string时,会发生什么情况,并使Spring从绑定操作中创buildDate对象。 对于这项工作,您需要通知Spring Web MVC使用PropertyEditor实例作为绑定过程的一部分:

 @InitBinder public void bindingPreparation(WebDataBinder binder) { DateFormat dateFormat = new SimpleDateFormat("MMM d, YYYY"); CustomDateEditor orderDateEditor = new CustomDateEditor(dateFormat, true); binder.registerCustomEditor(Date.class, orderDateEditor); }