Spring MVC 3.0实战:支持格式化的转换器详解
需积分: 9 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应用程序。
点击了解资源详情
点击了解资源详情
2012-10-15 上传
2012-02-01 上传
2014-02-13 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-11-19 上传
2024-11-19 上传
小炸毛周黑鸭
- 粉丝: 24
- 资源: 2万+
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析