zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    ping和traceroute原理分析异同为什么不能ping通却能traceroute (转载) 规格严格
    JDBC hang on Statement 规格严格
    邮件服务返回代码含义 规格严格
    后台分析(转载) 规格严格
    Java Socket(转载) 规格严格
    编程好习惯 规格严格
    统计图表生成 规格严格
    几篇不错的博客 规格严格
    我见过的一个让我瞠目结舌的电脑高手!
    Ubuntu 下Ape转Mp3[88250原创]
  • 原文地址:https://www.cnblogs.com/0820LL/p/10041902.html
Copyright © 2011-2022 走看看