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

需积分: 9 2 下载量 156 浏览量 更新于2024-08-17 收藏 2.62MB PPT 举报
"本文档是关于Spring MVC 3.0实战的指南,主要讲解了如何使用支持格式化的转换器,并提供了相关的配置示例。同时,提到了Spring MVC 3.0的一些新特性,如RESTful URL支持、更多的注解驱动等。" 在Spring MVC框架中,数据转换和格式化是关键组成部分,它确保了应用程序能够正确处理和显示各种数据类型。`<mvc:annotation-driven conversion-service="conversionService">` 这段XML配置用于启用基于注解的驱动,并指定自定义的转换服务`conversionService`。`conversionService`是`FormattingConversionServiceFactoryBean`的一个实例,该工厂类自动支持特定的格式化注解,例如: 1. `@NumberFormatter`: 用于格式化数字类型对象,可以根据需要定制数字的展示格式,比如小数位数、千分位分隔符等。 2. `@CurrencyFormatter`: 专门用于货币类型的对象,可以将数字格式化为标准的货币格式,考虑货币符号和本地化设置。 3. `@PercentFormatter`: 用于百分比数值,可以将其转换为带有百分号的格式。 在提供的示例中,我们看到如何自定义转换器`StringToUserConverter`并将其添加到转换服务的转换器列表中。这允许框架在需要将字符串转换为`User`对象时调用这个自定义转换器。 Spring MVC 3.0的新特性包括: - **支持REST风格的URL**: 通过使用`@RequestMapping`注解,可以创建符合REST原则的清晰、无状态的URL。 - **更多注解驱动**: 添加了多种新的注解,使开发者能够不依赖XML配置来声明控制器和方法的行为。 - **HTTP输入输出转换器(HttpMessageConverter)**: 提供了处理HTTP请求和响应体的不同数据格式(如JSON、XML)的能力。 - **数据转换、格式化、验证框架的集成**: 与数据验证框架(如Hibernate Validator)紧密集成,方便进行数据校验。 - **静态资源处理**: 对静态资源(如CSS、JavaScript文件)提供了特别的支持,避免了不必要的拦截。 - **更灵活的控制器方法签名**: 控制器方法可以完全独立于Servlet API,使得代码更简洁,解耦合。 在Spring MVC的架构中,`DispatcherServlet`作为核心组件,负责调度请求;`HandlerMapping`定位合适的处理器;`HandlerAdapter`适配不同的处理器方法;`ModelAndView`包含处理结果和模型数据;`ViewResolver`解析逻辑视图名到实际视图;而`Model`则包含了处理过程中产生的模型数据。通过这些组件的协作,Spring MVC能高效地处理HTTP请求并返回响应。 Spring MVC 3.0通过丰富的注解和强大的转换服务,简化了Web应用的开发,提高了开发效率和代码的可维护性。结合实际的项目案例,如`UserController`中的`@RequestMapping`注解,可以看出Spring MVC如何优雅地处理HTTP请求和响应。