SpringMVC3.0实战:基于协商的视图解析与REST支持

需积分: 9 0 下载量 117 浏览量 更新于2024-08-18 收藏 2.62MB PPT 举报
本文主要介绍了SpringMVC框架中的基于协商的视图解析器以及SpringMVC的基本概念和架构。在SpringMVC中,视图解析器是负责将控制器处理后的逻辑视图名称转换为实际视图的过程。内容涉及到ContentNegotiatingViewResolver的配置和作用,以及InternalResourceViewResolver的使用。 在Spring MVC中,视图解析器是系统的关键组件,它处理由控制器返回的逻辑视图名,并将其转换为实际的视图,如JSP、XML或JSON。基于协商的视图解析器`ContentNegotiatingViewResolver`允许根据客户端的能力或请求的特定参数来决定返回哪种格式的数据。配置中,`order`属性定义了解析器的优先级,`defaultContentType`设置默认的响应类型,`ignoreAcceptHeader`表示是否忽略Accept头,`favorPathExtension`和`favorParameter`分别指定了通过URL扩展名和请求参数来判断内容类型的方式。`mediaTypes`属性定义了各种媒体类型的映射,例如HTML、XML和JSON。`defaultViews`列表则包含默认视图,如`MappingJacksonJsonView`用于处理JSON,而`MarshallingView`则用于XML。 `InternalResourceViewResolver`是一个常用的视图解析器,它使用JSTL视图,前缀和后缀分别用于构建完整的视图路径。在这个例子中,前缀是"/WEB-INF/views/",后缀是".jsp"。 Spring MVC是一个强大的MVC框架,它简化了Web应用的开发。框架的核心是`DispatcherServlet`,它作为前端控制器,负责分发请求到相应的处理器。`HandlerMapping`负责映射请求到处理器,`HandlerAdapter`则使框架能够处理不同类型的处理器方法。`ModelAndView`对象包含了模型数据和视图信息。`ViewResolver`则解析逻辑视图名,生成实际视图。Spring MVC 3.0引入了许多新特性,如RESTful支持、更多的注解、HTTP消息转换器、与数据转换、格式化和验证框架的集成,以及对静态资源的处理优化等。 示例代码展示了如何使用注解`@Controller`和`@RequestMapping`创建一个简单的用户控制器`UserController`,其中`register`方法处理特定的URL请求并返回逻辑视图名。 Spring MVC通过灵活的配置和强大的功能,使得开发者可以高效地构建Web应用程序,同时提供了基于协商的视图解析机制,可以根据请求的不同需求返回多种格式的响应。