Spring MVC 3.0实战:支持格式化的转换器详解

需积分: 9 3 下载量 67 浏览量 更新于2024-08-18 收藏 2.62MB PPT 举报
"本文档是关于使用Spring MVC 3.0进行实战开发的指南,重点关注支持格式化的转换器的配置和使用。文档提及了如何在Spring MVC中通过`<mvc:annotation-driven>`标签和`ConversionService`来实现数据转换和格式化,并提供了相关的格式化注解,如`@NumberFormatter`, `@CurrencyFormatter`和`@PercentFormatter`。此外,文档还概述了Spring MVC框架的基本结构、新特性和关键组件,如DispatcherServlet、HandlerMapping、HandlerAdapter、ViewResolver等。" 在Spring MVC中,`<mvc:annotation-driven>`标签是用于启用基于注解的控制器驱动的配置,它会自动配置一些核心组件,包括一个`ConversionService`实例,这个实例默认由`FormattingConversionServiceFactoryBean`创建。`ConversionService`接口是Spring提供的用于进行数据转换的服务,它允许我们定义自定义的转换器,如示例中的`StringToUserConverter`,以便将字符串转换为用户对象。 `FormattingConversionServiceFactoryBean`扩展了转换服务的功能,支持格式化注解,如: 1. `@NumberFormatter`:这个注解用于对数字类型的数据进行格式化,可以定制数字的显示样式,例如添加千位分隔符或者指定小数位数。 2. `@CurrencyFormatter`:专用于货币类型的对象,可以按照特定的货币格式进行显示,如美元、欧元等。 3. `@PercentFormatter`:用于百分比数字,可以自动转换为带有百分号的格式。 在实际应用中,这些注解可以直接用在模型属性上,Spring MVC在处理请求时会自动调用相应的格式化器进行数据转换,从而提高代码的可读性和可维护性。 Spring MVC的框架结构主要包括以下几个组件: 1. `DispatcherServlet`:前端控制器,负责接收HTTP请求并调度请求处理流程。 2. `HandlerMapping`:处理器映射器,根据请求的URL找到合适的处理器(Controller)。 3. `HandlerAdapter`:处理器适配器,适配不同的处理器方法,确保DispatcherServlet能调用到它们。 4. `Handler`:处理器,即Controller,处理业务逻辑。 5. `ModelAndView`:模型和视图,包含了处理结果模型数据和视图名。 6. `ViewResolver`:视图解析器,根据逻辑视图名解析出实际的视图对象,如JSP、XML或PDF等。 7. `Model`:模型数据,用于传递数据到视图层。 8. `View`:视图,用于呈现数据。 Spring MVC 3.0的新特性增强了其功能,比如支持RESTful风格的URL,增加了更多的注解使得完全注解驱动成为可能,引入了HTTP输入输出转换器`HttpMessageConverter`,以及与数据转换、格式化和验证框架的无缝集成。此外,对静态资源处理的支持和控制器方法签名的灵活性提高,使得开发者可以完全脱离Servlet API编写控制器。 通过了解并熟练掌握这些概念和技术,开发者可以更有效地构建健壮、灵活的Spring MVC应用程序。