SpringMVC框架学习 day01 SpringMVC中自定义类型转换器

需求有一个表单包含user实体类的姓名、年龄、生日
在提交表单时:生日填写2000/1/1 SpringMVC会自动帮我们进行转换但是如果填写2000-1-1则会出现异常
自定义一个类型转换器实现生日类型转换

自定义类型转换器

1.如果想自定义数据类型转换,可以实现 Converter 的接口

public class StringToDateConverter implements Converter<String,Date> {

    /**
     * 自定义类型转换
     * @param source    表示传入的参数
     * @return
     */
    @Override
    public Date convert(String source) {

        if (source == null){
            throw new RuntimeException("参数不能为空");
        }

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;
        try {
            date = sdf.parse(source);
        } catch (Exception e) {
            throw new RuntimeException("自定义类型转换异常");
        }
        return date;
    }
}

2.注册自定义类型转换器,在springmvc.xml配置文件中编写配置

    <!-- 注册自定义类型转换器 -->
    <bean id="conversionServiceFactoryBean" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="cn.itcast.utils.StringToDateConverter"></bean>
            </set>
        </property>
    </bean>

    <!-- 开启springMVC 注解支持 -->
    <mvc:annotation-driven conversion-service="conversionServiceFactoryBean"></mvc:annotation-driven>

配置完成即可实现需求

发布了17 篇原创文章 · 获赞 0 · 访问量 136

猜你喜欢

转载自blog.csdn.net/weixin_46539792/article/details/105401263