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 @   权。  阅读(211)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示