类型转换主要用在日期上,前端传来一个日期,后端如何来接收呢?
下面看一个简单的例子:
定义一个接口,方法接收一个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了!