这是互联网上用于初始化 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) 之前,您不得不求助于手动解析日期:
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
对象在您的 Controller 中。
3) Spring 尝试对所有注册的编辑器看是否可以将值转换为对象。您不必对对象本身做任何事情,这就是它的美妙之处。
关于java - Spring MVC中init binder的目的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5211323/