Spring MVC3 教程:基于协商的视图解析器详解

需积分: 9 30 下载量 84 浏览量 更新于2024-08-18 收藏 2.62MB PPT 举报
本文档是关于Spring MVC 3教程的一部分,重点关注基于协商的视图解析器的配置和使用。在Spring MVC中,视图解析器是用于将控制器处理后的逻辑视图名转换为实际的视图资源的关键组件。ContentNegotiatingViewResolver是这样一个解析器,它可以根据请求的不同特性来确定应返回哪种类型的视图,例如HTML、XML或JSON。 在提供的配置中,`ContentNegotiatingViewResolver` 被设置为首选解析器,它通过检查请求的路径扩展名、查询参数或Accept头来决定内容类型。配置中定义了不同的媒体类型映射,如`.html`对应`text/html`,`.xml`对应`application/xml`,`.json`对应`application/json`。此外,还设置了两个默认视图,一个是`MappingJacksonJsonView`用于处理JSON响应,另一个是`MarshallingView`用于XML响应。这些视图分别与特定的属性或模型键关联,以便在渲染时使用。 接着,配置中还包含了一个`InternalResourceViewResolver`,这是Spring MVC中的标准视图解析器,主要用于处理JSP视图。它的`prefix`和`suffix`属性分别指定了视图路径的前缀和后缀,使得视图名称如"user/register"会被解析为"/WEB-INF/views/user/register.jsp"。 Spring MVC 3的新特性包括对RESTful URL的支持、更多的注解驱动功能、HTTP输入输出转换器、与数据转换和验证框架的集成、静态资源处理以及控制器方法签名的灵活性增强,使其可以完全独立于Servlet API。 示例代码展示了如何使用`@Controller`、`@RequestMapping`等注解来定义控制器和处理方法。`@Controller`注解将类标记为处理HTTP请求的组件,`@RequestMapping`则用来映射处理方法与URL。处理方法返回的逻辑视图名,如"register",将由视图解析器进一步转化为实际的视图资源。 这个教程部分详细解释了Spring MVC中如何配置和使用基于协商的视图解析器,以及如何利用注解进行控制器的定义和请求映射。这有助于开发者理解Spring MVC框架的工作原理,以及如何构建响应不同内容类型请求的应用程序。