SpringMVC自定义类型转换器

自定义类型转换器是什么

 假如前台传来这样一条字符串:“apple,10.58,200”,该字符串表示一个商品信息,后台需要自动创建一个Goods对象,并将“apple”值自动赋值给goodsName属性,将“10.58”值给goodsPrice属性,将“200”值赋给goodsNumber属性。

应用场景

这里用的是时间的转换。假如我们需要在get方法中传入一个时间对象,我们就要写 但是我们常用的日期格式是2022-02-05所以为了方便书写,我们可以使用日期类型转换器来达到相同的效果。

 

代码

userController 访问函数

 @RequestMapping(value = "/quick13")
    @ResponseBody  //告知spring直接进行数据回写,不跳转
    public void save13(Date date) throws JsonProcessingException {
        System.out.println(date);
    }

 

 定义一个类,实现Converter<S,T>接口

 

package wjb.converter;

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

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DataConverter implements Converter<String,Date> {
    @Override
    public Date convert(String datsStr) {
        //日期字符串传唤为日期对象
        Date date = null;
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try {
             date = format.parse(datsStr);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
}

在springmvc配置文件中配置类型转换器,将类型转换器交给spring容器管理


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

<!--
声明转换器 --> <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <list> <bean class="wjb.converter.DataConverter"></bean> </list> </property> </bean>

 

posted @ 2022-07-04 17:19  权。  阅读(218)  评论(0)    收藏  举报