当前位置 : 主页 > 编程语言 > 其它开发 >

SpringMVC自定义类型转换器

来源:互联网 收集:自由互联 发布时间:2022-07-05
自定义类型转换器是什么 假如前台传来这样一条字符串:“apple,10.58,200”,该字符串表示一个商品信息,后台需要自动创建一个Goods对象,并将“apple”值自动赋值给goodsName属性,将“
自定义类型转换器是什么

 假如前台传来这样一条字符串:“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>

 

网友评论