SpringMVC参数传递之日期类型

<a href="/demo/handle06?birthday=2019-10-08">点击测试</a>
/**

* http://localhost:8080/demo/handle06?birthday=2019-10-08

*/

@RequestMapping("/handle06")

public String handle06(Date birthday){





    return "success";

}

参数转换错误。报400

自定义类型转换器:

package com.lagou.edu.converter;

import org.springframework.core.convert.converter.Converter;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

/**

* @author lyj

* @Title: DateConverter

* @ProjectName springmvc-demo

* @Description: 自定义类型转换器,自定义完后需要注册

* @date 2020/6/10 23:10

*/



public class DateConverter implements Converter<String, Date> {

    @Override

    public Date convert(String s) {

        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");

        Date parse = null;

        try {

            parse = simpleDateFormat.parse(s);

        } catch (ParseException e) {

            e.printStackTrace();

        }





        return parse;

    }

}

springmvc.xml中注册

<!--

        自动注册最合适的处理器映射器,处理器适配器(调用handler方法)

    -->

    <mvc:annotation-driven conversion-service="conversionServiceBean"/>



<!--自定义类型转换器-->

    <bean id="conversionServiceBean" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">

        <property name="converters">

            <set>

                <bean class="com.lagou.edu.converter.DateConverter"></bean>

            </set>

        </property>

    </bean>

测试:

问题:对于同一个项目中多个日期格式的,我们可以定义多个日期转换器,但是没有必要,我们可以在DateConverter转换器中catch中捕捉异常的时候再new一个新的simpleFormat的转换对象,继续进行转换。

posted @ 2020-06-20 09:23  易水寒的博客  阅读(676)  评论(0编辑  收藏  举报