弹簧MVC中init粘结剂的用途是什么

2022-08-31 13:53:09

这是互联网上用于初始化绑定器的代码

@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

1)以前,您必须手动解析日期:

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

现在,您可以直接获取解析的日期:

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

2)如果您的页面在表单上提供了日期,您可以直接在控制器中将其作为对象进行检索。jspyyyy-MM-ddDate

3)Spring尝试对所有注册的编辑者进行尝试,看看值是否可以转换为对象。你不必在物体本身上做任何事情,这就是它的美妙之处。


答案 2