`

Spring4MVC之视图解析流程

 
阅读更多

 

流程查看方法

 

1. 在任一handle方法中打断点调试,如在HelloworldController的sayHello方法中打断点;

2. 启动调试;



    

大致流程

 

1. DispatcherServlet.doDispatch(HttpServletRequest, HttpServletResponse)

2. AnnotationMethodHandlerAdapter.handle(HttpServletRequest, HttpServletResponse, Object)

3. AnnotationMethodHandlerAdapter.invokeHandlerMethod(HttpServletRequest, HttpServletResponse, Object)

4. DispatcherServlet.processDispatchResult(HttpServletRequest, HttpServletResponse, HandlerExecutionChain, ModelAndView, Exception)

5. DispatcherServlet.render(ModelAndView, HttpServletRequest, HttpServletResponse)

6. AbstractView(AbstractView).render(Map<String,?>, HttpServletRequest, HttpServletResponse)

7. AbstractView(InternalResourceView).renderMergedOutputModel(Map<String,Object>, HttpServletRequest, HttpServletResponse)

8. javax.servlet.RequestDispatcher.forward(ServletRequest arg0, ServletResponse arg1) 

 

视图和视图解析器

 

请求处理方法执行完成后,最终返回一个 ModelAndView对象。对于那些返回 String,View 或 ModeMap 等类型的处理方法,

Spring MVC 也会在内部将它们装配成一个ModelAndView 对象,它包含了逻辑名和模型对象的视图

Spring MVC 借助视图解析器(ViewResolver)得到最终的视图对象(View),最终的视图可以是 JSP ,也可能是Excel、JFreeChart 等各种表现形式的视图

对于最终究竟采取何种视图对象对模型数据进行渲染,处理器并不关心,处理器工作重点聚焦在生产模型数据的工作上,从而实现 MVC 的充分解耦

 

视图

 

视图的作用是渲染模型数据,将模型里的数据以某种形式呈现给客户。

为了实现视图模型和具体实现技术的解耦,Spring在org.springframework.web.servlet 包中定义了一个高度抽象的 View接口

 

视图对象由视图解析器负责实例化。由于视图是无状态的,所以他们不会有线程安全的问题

 

常用的视图实现类



  

视图解析器

 

SpringMVC 为逻辑视图名的解析提供了不同的策略,可以在 Spring WEB 上下文中配置一种或多种解析策略,

并指定他们之间的先后顺序。每一种映射策略对应一个具体的视图解析器实现类。

视图解析器的作用比较单一:将逻辑视图解析为一个具体的视图对象。

所有的视图解析器都必须实现 ViewResolver 接口

 

常用的视图解析器实现类



 

程序员可以选择一种视图解析器或混用多种视图解析器每个视图解析器都实现了 Ordered 接口并开放出一个 order 属性,

可以通过 order 属性指定解析器的优先顺序,order 越小优先级越高。

SpringMVC 会按视图解析器顺序的优先顺序对逻辑视图名进行解析,直到解析成功并返回视图对象,否则将抛出 ServletException 异常 

 

InternalResourceViewResolver

 

JSP 是最常见的视图技术,可以使用InternalResourceViewResolver 作为视图解析器

 

    <!--配置视图解析器:如何把handler方法返回值解析为实际的物理视图-->
    <!--视图名称解析器:将视图逻辑名解析为: /pages/<viewName>.jsp-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    	<property name="prefix" value="/pages/"></property>
    	<property name="suffix" value=".jsp"></property>
    </bean>

 

若项目中使用了 JSTL,则 SpringMVC 会自动把视图由InternalResourceView 转为 JstlView

 

 

 

 

  • 大小: 68.9 KB
  • 大小: 533.5 KB
  • 大小: 403.3 KB
分享到:
评论

相关推荐

    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.xml

    idea里的mvc配置

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

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

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

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

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

    Spring MVC是Spring框架中的一部分,全称是Spring Web MVC,主要用于实现MVC设计模式的Web框架。它分离了控制器、模型对象、过滤器以及处理程序...此外,Spring MVC还支持本地化/国际化(Locale)解析及文件上传等。

    Spring3MVC注解教程.ppt

    《Spring MVC 3.0实战指南》,参考《Spring 3.x企业应用开发实战》。 内容简介: 1、Spring MVC框架简介 2、HTTP请求地址映射 3、HTTP请求数据的绑定 4、数据转换、格式化、校验 5、数据模型控制 6、视图及...

    Spring-mvc,例题

    -- 视图解析器,经返回的逻辑视图解析为物理视图 --&gt; &lt;bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name="prefix" value="/"&gt;&lt;/property&gt; ...

    Spring MVC 3.0实战指南.ppt

    《Spring MVC 3.0实战指南》,参考《Spring 3.x企业应用开发实战》。 内容简介: 1、Spring MVC框架简介 2、HTTP请求地址映射 3、HTTP请求数据的绑定 4、数据转换、格式化、校验 5、数据模型控制 6、视图及解析器 7...

    Spring MVC.pptx

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

    Spring3MVC注解教程

    Spring3MVC注解教程: 1.Spring MVC框架简介 2.HTTP请求地址映射 3.HTTP请求数据的绑定 4.数据转换、格式化、校验 5.数据模型控制 6.视图及解析器 7.其它

    springmvc demo

    应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)...

    Spring构建mvc工程详细教程.pdf

    文档内容包括springMVC的请求过程,springMVC工程的配置文件示例,如何写控制器,视图解析的分析等内容。

    Spring mvc 入门向导

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

    spring_MVC源码

    -- 对模型视图名称的解析,即在模型视图名称添加前后缀 --&gt; 17. &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" 18. p:prefix="/WEB-INF/view/" p:suffix=".jsp" /&gt; 19. ...

    spring mvc 3.2 参考文档

    Spring Web model-view-controller (MVC)框架是围绕 DispatcherServlet 设计的,并分发请求到处理程序(handler),Spring MVC支持可配置的处理程序映射(handler mapping),视图解析(view resolution)、 区域设置...

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

    Java之Spring Boot详解

     Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再...  4)配置视图解析器 (5)开发 Controller

Global site tag (gtag.js) - Google Analytics