- 前言
读完本文将会学到以下内容:
- 日期类型的参数绑定
学习本文需要安装的软件:
- JDK1.8 、IDEA2017.3、Maven3.3.3、Tomcat7.0.64
- 日期类型的参数绑定
1.准备POJO
public class TestUser {
private Integer id;
private String name;
private Date birthday;
//get,set方法
}
2.测试代码
//参数绑定:日期类型
//测试URL--http://localhost:8080/params2.test?id=23&name=xiaoming&birthday=2017-10-10
@RequestMapping(value = "/params2.test")
public void bindParams2(int id, String name, Date birthday) {
System.out.println("id=" + id);
System.out.println("name=" + name);
System.out.println("birthday=" + birthday);
}
3.注意事项
3.1 URL中的属性值默认是字符串。bindParams2的形参birthday被赋值为字符串,想转为Date类型,代码必报错。
4.解决办法
相信已有人想到,使用SimpleDateFormat
将字符串类型日期
转为Date类型日期
。对,没错,就是酱紫!
但是但是,前端传的参数在哪里转类型呢?这就要用到SpringMVC的转化器Converter
。
4.1 在SpringMVC配置文件中配置自定义转换器
<!-- 在SpringMVC配置文件中配置自定义转换器 -->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<!-- 自定义转换器的类名 -->
<bean class="cn.itcast.core.util.DateConverter"></bean>
</property>
</bean>
4.2 编写自定义转换器
//编写自定义转换器
public class DateConverter implements Converter<String, Date> {
public Date convert(String source) {
//实现将字符串转成日期类型(格式是yyyy-MM-dd)
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
return dateFormat.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return null; //如果参数绑定失败返回null
}
}
- 后记
下文将会介绍以下内容: