Spring MVC教程:基于协商的视图解析与内容类型处理

需积分: 31 6 下载量 173 浏览量 更新于2024-08-18 收藏 2.62MB PPT 举报
本文档是关于Spring MVC教程的,主要讲解了基于协商的视图解析器的配置和工作原理,并提供了实例。同时提到了Spring MVC框架的一些核心概念和新特性。 在Spring MVC中,视图解析器是负责将处理方法返回的逻辑视图名称转化为实际的视图对象的关键组件。在示例中,`ContentNegotiatingViewResolver` 是一种基于内容协商的视图解析器,它可以根据客户端的请求头、URL扩展名或请求参数来选择合适的视图类型。通过配置,我们可以设置不同的媒体类型映射,例如将".html"对应于"text/html",".xml"对应于"application/xml",以及".json"对应于"application/json"。此外,配置中的`defaultViews`属性定义了当没有匹配到特定视图时的默认视图策略,如使用`MappingJacksonJsonView`处理JSON数据,或者使用`MarshallingView`处理XML数据。 `InternalResourceViewResolver` 是另一种常见的视图解析器,用于处理JSP视图。它会将逻辑视图名前缀和后缀添加到视图名称中,构建出实际的JSP页面路径。在本例中,前缀设置为"/WEB-INF/views/",后缀设置为".jsp"。 Spring MVC的其他核心概念包括: 1. `DispatcherServlet`:作为Spring MVC的前端控制器,它接收HTTP请求并分派给相应的处理器。 2. `HandlerMapping`:负责将请求映射到处理方法。 3. `HandlerAdapter`:适配不同的处理器(Controller),使得DispatcherServlet可以调用它们。 4. `ModelAndView`:包含了处理方法返回的模型数据和视图信息。 5. `ViewResolver`:解析逻辑视图名到实际视图对象。 6. `Model`:用于存储模型数据。 7. `View`:表示视图,可以是JSP、XML、PDF等形式。 Spring MVC 3.0的新特性包括支持RESTful URL、更多的注解驱动、HTTP输入输出转换器、与数据转换和验证框架的集成、静态资源处理以及更灵活的控制器方法签名。 示例代码展示了如何使用`@Controller`和`@RequestMapping`注解来创建一个处理用户注册的控制器。`@Controller`标记类为一个处理器,`@RequestMapping`用于指定控制器处理的URL路径,而处理方法内部的`return "user/register"`则返回逻辑视图名,最终由视图解析器解析为实际的视图。 总结来说,本文档提供了Spring MVC中视图解析器的配置实例,以及Spring MVC框架的基本架构和使用注解驱动的控制器开发方式。理解这些内容对于开发基于Spring MVC的Web应用程序至关重要。