• Spring MVC 的 Converter 和 Formatter


    Converter 和 Formatter 都可用于将一种对象类型转换成另一种对象类型。

    Converter 是通用元件,可以将一种类型转换成另一种类型,可以在应用程序中的任意层中使用;

    Formatter 只能将 String 转换成另一种 Java 类型,是专门为 Web 层设计的;在 Spring MVC 应用程序中,选择 Formatter 比选择 Converter 更合适。

    Converter

    为了创建 Converter, 必须编写一个实现 org.springframework.core.coverter.converter.Converter 接口的 Java 类

    public interface Converter<S, T> {  // S 表示源类型,T 表示目标类型
        public abstract T converter(S source);
    }

    为了使用 Spring MVC 应用程序中定制的 Converter,需要在 Spring MVC 配置文件中编写一个 conversionService bean。

    Bean 的类名必须为 org.springframework.context.support.ConversionServiceFactoryBean。这个 bean 必须包含一个 converters 属性,它将列出要在应用中使用的所有定制 Converter。

    Formatter

    为了创建 Formatter,需要编写一个实现 org.springframework.format.Format 接口的 Java 类

    public interface Formatter<T> extends Printer<t>, Parser<T>{  // T 是输入的字符串要转换成的目标类型
        public abstract T parse(String text, Locale locale);  // 利用指定的 Locale 将一个 String 解析成目标类型
        public abstract String pring(T object, Locale locale);  // 与 parse() 相反,返回目标类型的字符串表示法  
    }

    为了在 Spring MVC 应用程序中使用 Formatter,需要利用 conversionService bean 对它进行注册。

    bean 的类名称必须为 org.springframework.format.support.FormattingConversionServicefactoryBean。这个 bean 可以用一个 Formatters 属性注册 Formatter,用一个 converters 属性注册 converter。

    注册 Formatter 的另一种方法是使用 Registrar。有了 Registrar,就不需要在 Spring MVC 配置文件中注册任何 Formatter 了,只在 Spring 配置文件中注册 Registrar。

  • 相关阅读:
    TCP协议报文段的解析
    在阿里云轻量级云服务器上安装redis
    MySQL学习(一)
    GIT学习(一)
    speed up gradle
    Android Studio plugins recommend
    Android Activity life circle brief
    install and use gradle
    Android Studio, Failed to install Intel HAXM
    Vue3 ref、reactive、toRef、toRefs的区别
  • 原文地址:https://www.cnblogs.com/0820LL/p/10041902.html
Copyright © 2020-2023  润新知