Spring Boot (二十九)——使用类型转换器

亡梦爱人 提交于 2020-01-11 19:15:06

类型转换主要用在日期上,前端传来一个日期,后端如何来接收呢?

下面看一个简单的例子:

定义一个接口,方法接收一个Date类型的参数:

@RestController
public class UserController {
    @GetMapping("/hello")
    public void hello(Date date){
        System.out.println(date);
    }
}

前端访问时传入一个date类型的值:
在这里插入图片描述
可以看到,日期类型转换异常导致请求失败了,我们可以自定义一个日期的类型转换器来解决这个问题:

import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

@Component
public class DateConvert implements Converter<String, Date> {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    @Override
    public Date convert(String source) {
        if(source != null && !"".equals(source)){
            try {
                Date date = sdf.parse(source);
                return date;
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}

再次访问,就OK了!
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!