今日,在开发人资库模块时,前台表单提交请求总是报400错误,一开始以为请求路径的问题,但是在拦截器加断点分析之后,发现可能是model中日期注解设置的问题,之前一直没发现,是因为图省事,日期单独传参,现在通过表单整体传参就遇到问题了。
查资料发现,在model中日期字段需要设置日期格式转换注解,表单传参才能生效。
详情如下:
当form表单中出现时间字段需要跟pojo对象中的成员变量进行数据绑定时,springmvc框架中的时间数据无法自动绑定,这是springmvc框架的问题,页面传递回来的时间类型的数据就无法在controller中接受。
在pojo中,对时间类型的属性标注格式化注解@DateTimeFormat即可,如下:
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
在上述代码中,@DateTimeFormat(pattern="yyyy-MM-dd")可以将形如2022-01-01的字符串转换为java.util.Date类型。
附图详解: