spring MVC中init绑定器的用途是什么

时间:2011-03-06 15:23:40

标签: java binding spring-mvc

这是针对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 个答案:

答案 0 :(得分:53)

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