今天发现一个问题,前端传来一个日期,后端如何来接收呢?
平时项目中主要使用的jesonobject格式进行传输,接收的参数格式都是object,不存在世界格式的问题,如果使用Date类型来进行参数的接收呢比如以下情况
定义一个接口,方法接收一个Date类型的参数:
@RestControlle
public class UserController {
@GetMapping("/hello")
public void hello(Date date){
System.out.println(date);
}
}
前端访问时传入一个date类型的值:
会报错,日期类型转换异常导致请求失败
可以定义一个日期类型转换器来解决这个问题
实现Spring Converter<in,out>
接口即可实现自定义数据类型转换。此方法同样适用于Spring MVC。
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> { //将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;
}
}
在此访问