文章目录
- 一、问题
- 二、实现Converter
接口 - 1. 该接口位置
- 2.创建DateConverter实现类,实现convert方法
- 三、在Spring-MVC.xml配置文件中声明转换器
- 1.设置id
- 2.设置class
- 3.配置converters属性
- 四、在mvc注解中引用转换器
- 五、测试
- 1. 接收日期参数并打印
- 2.在网页输入url传参
一、问题
- 问题
- 当日期传参格式为2023/5/13时,因为这是Spring默认日期格式,所以能解析
- 当日期传参格式为2023-5-13时,因为这不是Spring默认日期格式,所以不能解析
- 解决方案
- 自定义日期格式
二、实现Converter接口
1. 该接口位置
org.springframework.core.convert.converter.Converter
2.创建DateConverter实现类,实现convert方法
public class DateConverter implements Converter{ @Override public Date convert(String s) { //将日期字符串转换为日期对象返回 //自定义日期格式 SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); Date date; try { //转换 date = sf.parse(s); } catch (ParseException e) { throw new RuntimeException(e); } //将日期对象返回 return date; }}
三、在Spring-MVC.xml配置文件中声明转换器
1.设置id
conversionService
2.设置class
org.springframework.context.support.ConversionServiceFactoryBean
3.配置converters属性
四、在mvc注解中引用转换器
- conversion-servic的值为第三步设置的id(即转换器的id)
五、测试
1. 接收日期参数并打印
@Controllerpublic class UserController { @RequestMapping(value = "/quick13") @ResponseBody public void save13(Date date){ System.out.println(date); }}
2.在网页输入url传参
- 参数:date=2023-5-13
http://localhost:8080/quick13?date=2023-5-13
- 打印结果
Sat May 13 00:00:00 CST 2023