java - Spring MVC中init binder的目的是什么

标签 java binding spring-mvc

这是互联网上用于初始化 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/

相关文章:

java - 如何在 Spring MVC 错误处理程序中打印堆栈跟踪

java - 在 java 中使用属性文件 *AS* static final 变量中的属性

java - 为什么我的计划作业没有并行执行

c# - Caliburn.Micro - 是否可以验证基于约定的绑定(bind)的异常?

AngularJS - 检查组件的绑定(bind)函数是否是一个函数

java - 自定义表单验证注释不起作用

javascript - 有没有一种方法可以在 springmvc 中的 ajax post 调用之后将我的页面(jsp)重定向到另一个页面(jsp)

java - 如何在点击默认键盘按钮时启用触觉?

java - 如何在 Slick2D 中的随机位置接触后重生矩形?

c# - 绑定(bind)以依赖子类的可观察集合