`

spring MVC之按名称解析视图(一)

 
阅读更多

spring MVC之按名称解析视图(一)

-----------

 

当处理器处理完请求时,它可能返回视图对象,也可能返回这个视图对象的逻辑名称。如果它返回的是视图名称,DispatcherServlet就必须用这个名称创建视图对象,并为用户呈现视图。你想为DispatcherServlet定义一种策略,以便按视图名称来解析视图。

在Spring MVC应用程序中,视图由web应用程序上下文中声明的一个或多个视图解析器Bean进行解析。这些Bean必须实现ViewResolver接口,这样DispatcherServlet才能自动侦测到它们。Spring MVC提供了几个ViewResolver实现,让你能根据不同的策略来解析视图。

 

 

根据URL解析视图

 

解析视图的基本策略是直接将它们映射到URL。视图解析器InternalResourceViewResolver用添加前缀后缀的方法,将

每个视图名称都映射到一个URL上。为了注册InternalResourceViewResolver,可以在Web应用程序上下文中声明一个该类型的Bean。

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
	<property name="prefix" value="/WEB-INF/jsp/"/>
	<property name="suffix" value=".jsp"/>
</bean>

例如,InternalResourceViewResolver会以下面的方式解析视图名称welcome和reservationQuery。

welcome --> /WEB-INF/jsp/welcome.jsp
reservationQuery --> /WEB-INF/jsp/reservationQuery.jsp

解析后的视图类型可以通过viewClass属性指定。默认情况下,如果classpath中有JSTL库(如:jstl.jar),InternalResourceViewResolver就会将视图名称解析到JstlView类型的视图对象中。因此,如果视图是带有JSTL标签的JSP模板,完全可以省略viewClass属性。

InternalResourceViewResolver很简单,它只能解析能够被Servlet API的RequestDispatcher转发的内部资源视图(如内部的jsp文件或者Servlet)。至于Spring MVC支持的其他视图类型,必须利用其他策略对他们进行解析。  

 

 

 

 

分享到:
评论

相关推荐

    Spring MVC--5.视图和视图解析器

    Spring MVC--5.视图和视图解析器

    深入解析Spring+MVC与Web+Flow.pdf

    《深入解析Spring MVCgn Web Flow》来自Spring开发团队的权威之作前所未有地深入剖析Spring MVC技术内幕大量专家经验和技巧,全面提升你的Web开发境界 Spring MVC和Spring Web Flow是Spring平台上两个极为灵活而且...

    Spring MVC+MyBatis开发从入门到项目实战

    第3篇是Spring MVC技术入门,包括Spring MVC的背景介绍、架构整体剖析、环境搭建、处理器与映射器的讲解、前端控制器的源码分析、多种视图解析器的介绍、请求映射与参数绑定的介绍、Validation校验与异常处理和拦截...

    Spring MVC中InternalResourceViewResolver视图解析器的默认行为.docx

    org.springframework.web.servlet.view.InternalResourceViewResolver视图解析器在默认情况下(没有对它做任何配置):默认会将类上的请求路径和方法返回的字符串组合起来得到jsp视图的完整路径

    Spring MVC 3.0实战指南.ppt

    Spring MVC如何解析视图 视图解析器类型 基于协商的视图解析器 目录 本地化:基础原理 本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 ...

    spring-mvc.xml

    idea里的mvc配置

    Spring MVC.pptx

    详细的Spring MVC教程,内容包括控制器 重定向 保存并获取属性参数 拦截器 表单标签和验证表单 视图和视图解析器 上传文件 数据转换和格式化

    Spring3MVC注解教程.ppt

    Spring MVC如何解析视图 视图解析器类型 基于协商的视图解析器 目录 本地化:基础原理 本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态...

    spring mvc 3.2 参考文档

    Spring的视图解析也非常灵活,控制器通常负责准备含有数据的model Map并选择一种视图名称,当然,它也可以直接直接写响应流,并完成该请求。视图名称解析可以根据文件扩展名或者Accept头内容类型协商,通过bean的...

    21道Java Spring MVC综合面试题详解含答案(值得珍藏)

    Spring MVC是Spring框架中的一部分,全称是Spring Web MVC,主要用于实现MVC设计模式的Web框架。它分离了控制器、模型对象、过滤器以及处理程序对象的角色,使得它们更容易进行定制。 Spring MVC的优点包括: 基于...

    Spring MVC的教程项目代码

    奉上学习Spring MVC 3.0的技术资料PPT资料,我花了两天写成,该资料根据最新拙作的《Spring 3.x 企业应用开发实战 》写成,仅需要1个小时左右的时间,就可以让你学习到Spring MVC 3.0的...视图及解析器 其它杂项内容

    Spring MVC学习教程之视图深入解析

    主要给大家介绍了关于Spring MVC学习教程之视图解析的相关资料,文中通过示例代码介绍的非常详细,对大家学习或使用spring mvc具有一定的参考学习价值,需要的朋友们下面来一起看看吧

    Spring mvc 入门向导

    spring mvc入门资源,webstore项目贯穿始终,mvc,视图解析器,拦截器restfull,文件上传等方方面面

    spring mvc 思维导图

    Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。...

    Spring技术内幕:深入解析Spring架构与设计原理(第2部分)

     Spring MVC如何灵活地集成各种丰富的视图展现方案?  Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗?  Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处?  如何在Spring的...

    java spring mvc

    5)Spring MVC处理流程 a.... d.ModelAndView里包含了响应View和数据信息,主控制器调用ViewResolver视图解析器根据ModelAndView的内容寻找View组件,生成响应 e.主控制器将响应内容给客户浏览器输出

    Spring MVC 员工管理系统

    Spring为展现层提供了一个优秀的Web框架——Spring MVC。和众多其它Web框架一样,它基于MVC设计理念,此外,由于它采用了松散耦合可插拔组件结构,具有比其它MVC框架更多的扩展性和灵活性。 Spring MVC框架围绕...

    Spring技术内幕:深入解析Spring架构与设计原理(第一部分)

    Spring技术内幕 深入解析Spring架构与设计原理1(完整清晰版),一共两部分,这是第一部分 《Spring技术内幕:深入解析Spring架构与设计原理》是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自...

    springmvc demo

    Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发...

    Spring技术内幕:深入解析Spring架构与设计原理

     spring mvc如何灵活地集成各种丰富的视图展现方案?  spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗?  spring acegi安全框架在用户验证和授权机制的实现上有何过人之处?  如何在spring的...

Global site tag (gtag.js) - Google Analytics