Spring MVC 转换服务与格式化注解详解

需积分: 0 1 下载量 173 浏览量 更新于2024-08-18 收藏 2.62MB PPT 举报
"本文主要介绍了如何在Spring MVC中使用支持格式化的转换器,以及Spring MVC框架的基本结构和关键组件。通过配置`mvc:annotation-driven`和定义`conversionService`,可以自定义转换服务,实现数据的格式化。此外,文章还提到了Spring MVC 3.0的新特性,包括RESTful URL支持、更多注解、HTTP输入输出转换器等。" 在Spring MVC中,我们经常需要将数据从一种类型转换为另一种类型,或者按照特定的格式显示数据。`<mvc:annotation-driven conversion-service="conversionService">`标签用于启用基于注解的驱动,并指定自定义的转换服务。在这里,我们定义了一个名为`conversionService`的bean,其类为`org.springframework.format.support.FormattingConversionServiceFactoryBean`,这个工厂bean提供了对格式化注解的支持。 `FormattingConversionServiceFactoryBean`支持以下三种格式化注解: 1. `@NumberFormatter`: 用于数字类型的格式化,可以定制数字的显示样式,例如保留小数位数、使用特定的千分符等。 2. `@CurrencyFormatter`: 专门用于货币类型的对象,可以按照特定的货币格式进行显示。 3. `@PercentFormatter`: 用于百分比数字的格式化,能够方便地展示百分比值。 在实际应用中,我们可以通过定义自己的转换器类(如`com.baobaotao.domain.StringToUserConverter`)并将其加入到`conversionService`的`converters`列表中,来扩展转换服务的功能,处理自定义类型之间的转换。 Spring MVC框架的核心组件包括`DispatcherServlet`,它是所有请求的入口点。`HandlerMapping`负责将请求映射到合适的处理器,而`HandlerAdapter`则确保控制器方法可以被调用。处理器执行完毕后,返回`ModelAndView`对象,其中包含模型数据和逻辑视图名。`ViewResolver`根据逻辑视图名解析出实际的视图,最后渲染视图并响应给客户端。 Spring MVC 3.0引入了许多新特性,增强了其功能和灵活性。例如,支持REST风格的URL使得创建RESTful API变得简单;添加了更多的注解,使得开发更注解驱动;引入了`HttpMessageConverter`,用于处理HTTP请求和响应的数据转换;与数据转换、格式化、验证框架的无缝集成,提高了数据处理的效率;对静态资源的特殊处理,优化了静态资源的访问;控制器方法签名更加灵活,可以完全独立于Servlet API,降低了对Servlet的依赖。 通过深入理解这些核心概念和特性,开发者能够更好地利用Spring MVC构建高效、健壮的Web应用程序。