SpringMVC的参数绑定——日期类型

- 前言

读完本文将会学到以下内容:

  • 日期类型的参数绑定

学习本文需要安装的软件:

  • 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
    }
}

- 后记

下文将会介绍以下内容:


猜你喜欢

转载自blog.csdn.net/xiangliqu/article/details/79606016
今日推荐