"本文主要介绍了Spring MVC 3.0中的视图解析器类型,并提到了ContentNegotiatingViewResolver作为基于协商的视图解析器的角色。同时,文章概述了Spring MVC的基本架构和新特性,包括RESTful URL支持、注解驱动、HttpMessageConverter等。" 在Spring MVC中,视图解析器(View Resolver)扮演着至关重要的角色,它负责将控制器返回的逻辑视图名称转换为实际的视图,如JSP、XML或PDF等。以下是几种常见的视图解析器类型: 1. **InternalResourceViewResolver**:这是Spring MVC中最常用的视图解析器,它处理内部资源,如JSP页面。通过配置前缀和后缀,它可以将逻辑视图名转化为实际的URL路径。 2. **FreeMarkerViewResolver**:用于处理FreeMarker模板引擎生成的视图。它需要FreeMarker模板文件与逻辑视图名相匹配。 3. **BeanNameViewResolver**:通过视图的bean名称来解析视图。如果控制器返回的逻辑视图名是Spring容器中一个bean的名称,那么这个bean将被用作视图。 4. **XmlViewResolver**:处理以XML格式配置的视图。这种解析器可以读取XML文件,从中找到对应的视图定义。 5. **ContentNegotiatingViewResolver**:这是Spring 3.0引入的新特性,它并不直接解析视图,而是根据请求的MIME类型,选择合适的视图解析器来处理。这使得应用能够支持多种类型的响应,如HTML、JSON或XML。 Spring MVC的整体架构由DispatcherServlet作为前端控制器开始,它接收HTTP请求,然后通过HandlerMapping定位到合适的处理器(Handler)。HandlerAdapter则封装了不同类型的处理器,使得DispatcherServlet能与各种处理器交互。处理器执行完业务逻辑后,返回ModelAndView对象,包含模型数据和逻辑视图名。接下来,ViewResolver会介入,将逻辑视图名转化为实际视图,并呈现给客户端。 在Spring MVC 3.0中,新特性包括: - **REST风格的URL支持**:允许创建更简洁、语义化的URL,便于构建RESTful服务。 - **更多的注解**:增加了更多的注解,如@RequestMapping,使代码更加简洁,更易于实现注解驱动的开发。 - **HttpMessageConverter**:处理HTTP输入输出,支持不同的数据格式,如JSON和XML。 - **与数据转换、格式化和验证框架的集成**:简化了数据处理流程,提供了更好的数据校验机制。 - **静态资源处理**:提供了对静态资源如CSS、JavaScript等的特殊处理。 - **独立于Servlet API的控制器方法签名**:使得控制器方法可以完全独立于Servlet API,增强了灵活性。 例如,在下面的代码示例中,`@Controller`注解标记了`UserController`为一个处理器,`@RequestMapping`注解指定了控制器的URL映射。`@RequestMapping("register")`注解指定了处理方法`register()`对应的具体URL。该方法返回的"**user/register**"是逻辑视图名,它会被视图解析器进一步处理为实际的视图。 通过这些内容,我们可以看到Spring MVC 3.0如何通过视图解析器和其他组件协同工作,以实现高效、灵活的Web应用开发。
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/a4690e64ed55462f943b2b72ac492072_weixin_42183486.jpg!1)
- 粉丝: 24
- 资源: 2万+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 解决Eclipse配置与导入Java工程常见问题
- 真空发生器:工作原理与抽吸性能分析
- 爱立信RBS6201开站流程详解
- 电脑开机声音解析:故障诊断指南
- JAVA实现贪吃蛇游戏
- 模糊神经网络实现与自学习能力探索
- PID型模糊神经网络控制器设计与学习算法
- 模糊神经网络在自适应PID控制器中的应用
- C++实现的学生成绩管理系统设计
- 802.1D STP 实现与优化:二层交换机中的生成树协议
- 解决Windows无法完成SD卡格式化的九种方法
- 软件测试方法:Beta与Alpha测试详解
- 软件测试周期详解:从需求分析到维护测试
- CMMI模型详解:软件企业能力提升的关键
- 移动Web开发框架选择:jQueryMobile、jQTouch、SenchaTouch对比
- Java程序设计试题与复习指南
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)