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); }