栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot自定义Converter和Formatter

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot自定义Converter和Formatter

Converter和Formatter(pojo参数绑定解析器)

当我们在controller方法的入参为一个javabean类型并且没有使用任何注解进行标注,springboot将会使用ServletModelAttributeMethodProcessor方法处理器对请求参数和javaBean对象的属性进行绑定,在ServletModelAttributeMethodProcessor内部会调用参数转换器将请求参数与javaBean的属性对象进行类型转换再使用反射进行参数绑定,例如 请求参数时string类型,属性值为int类型,当然我们也可以自己定义类型转换器。

要实现自定义的类型转换器有两种实现模式:

一种是实现Formatter接口(这种方式默认时String类型转其他类型)

一种是实现Converter(自定义某种类型转换到某种类型)

实现Formatter接口

public class MyDateFormatter implements Formatter {
    @Override
    public LocalDateTime parse(String text, Locale locale) throws ParseException {
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        return LocalDateTime.parse(text,dateTimeFormatter);
    }

    @Override
    public String print(LocalDateTime object, Locale locale) {
        return null;
    }
}

实现Converter接口

public class MyDateConverter implements Converter {
    @Override
    public LocalDateTime convert(String source) {
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        return LocalDateTime.parse(source, dateTimeFormatter);
    }
}

添加转换器:

@Configuration
public class WebConfigure implements WebMvcConfigurer {
    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addFormatter(new MyDateFormatter());
      //registry.addConverter(new MyDateConverter());
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/459943.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号