首页 > 编程知识 正文

forget to do sth和forget doing sth的区别,live slowly and love you slowly

时间:2023-05-06 05:38:47 阅读:183787 作者:4707

1、问题描述

在一次项目的某个页面中遇到了,当客户端提交数据时出现(type=Bad Request, status=400)返回400状态码,控制台出现 WARN .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 2 errors。


2、问题原因

经过测试发现,当客户端页面提交日期为空时会出现以下异常,如果提交日期不为空则不会出现上述问题。出现这种错误的原因是没有对代码中的Date型参数进行格式化,接收为null的日期类型参数时,出现了转换异常。一般是页面的数据与数据库的Date数据类型不同导致的。

3、解决方法

为后台用于接收日期类型并存入数据库的属性进行日期的格式化。

1、为该属性加上格式化注解:@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)(数据库中的日期格式)

如果接收日期的为实体类属性则直接在该属性上加,如果为方法参数直接加在方法参数前。

2、使用日期类型转换器,定义一个日期类型转换器将他交给spring容器管理,在转换时会自动调用。使用时实现Converter接口接口中泛型第一个参数为源类型第二个参数为目标类型。

@Componentpublic class StringToDateConvert implements Converter<String, Date> { // 日期转换器 private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); @Override public Date convert(String s) { Date date = null; try { if(s!=null && !"".equals(s)){ date = format.parse(s); } } catch (ParseException e) { e.printStackTrace(); } return date; }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。