SpringMVC 3.0实战:基于协商的视图解析与REST支持

需积分: 9 16 下载量 81 浏览量 更新于2024-08-17 收藏 2.62MB PPT 举报
本文主要介绍了SpringMVC 3.0中的基于协商的视图解析器以及SpringMVC框架的基本概念和工作流程。 在SpringMVC框架中,视图解析器扮演着关键角色,它负责根据特定规则将逻辑视图名称转换为实际的视图资源。在示例中,`ContentNegotiatingViewResolver` 是一个基于内容协商的视图解析器,它允许根据客户端的接受类型来选择适合的视图。通过配置`<bean>`元素,我们可以定制解析器的行为。例如,设置`order="0"`确保它是优先级最高的视图解析器。`defaultContentType="text/html"`指定了默认的内容类型,而`ignoreAcceptHeader="true"`表示不考虑`Accept`头进行内容协商。`favorPathExtension="false"`和`favorParameter="true"`表明解析器更倾向于通过URL参数而不是路径扩展来确定内容类型。`parameterName="content"`定义了用于内容协商的参数名。`mediaTypes`属性定义了不同的媒体类型及其对应的MIME类型。`defaultViews`属性则包含了一系列默认视图,如`MappingJacksonJsonView`用于JSON响应,`MarshallingView`用于XML响应。 `InternalResourceViewResolver`是另一个常见的视图解析器,用于处理JSP视图。它的`viewClass`属性设置为`JstlView`,`prefix`和`suffix`分别定义了视图路径的前缀和后缀。 SpringMVC是一个强大的Web MVC框架,它简化了处理HTTP请求和响应的过程。框架结构包括DispatcherServlet、HandlerMapping、HandlerAdapter、ModelAndView、ViewResolver等组件。DispatcherServlet作为前端控制器接收所有请求,HandlerMapping将请求映射到合适的处理器,HandlerAdapter调用处理器方法,ModelAndView封装了模型数据和视图信息,最后由ViewResolver解析逻辑视图名并返回实际视图。 SpringMVC 3.0引入了许多新特性,如支持RESTful URL、更多的注解支持、HTTP输入输出转换器、与数据转换和验证框架的集成、静态资源处理优化以及更灵活的控制器方法签名,这些都极大地提高了开发效率和应用程序的可维护性。 在示例代码中,`@Controller`和`@RequestMapping`注解被用来创建和映射控制器。`@Controller`标记类为处理器,`@RequestMapping`则定义了控制器处理的URL路径。`@RequestMapping`的另一个用法是在方法级别,进一步细化URL映射。返回的`"user/register"`是逻辑视图名,通过视图解析器会被转化为实际的视图资源,如JSP页面。 总结起来,SpringMVC 3.0提供了基于协商的视图解析器,增强了内容协商能力,并通过一系列注解简化了控制器的开发。结合其他核心组件,SpringMVC构建了一个高效且灵活的Web应用程序架构。