Spring MVC 中 如何解析视图及视图解析的详细流程

SpringMVC 如何解析视图

请求处理方法返回值类型是

String
ModelAndView
View

SpringMVC都会奖其转化为ModelAndView对象,再给ViewResolver,最后变成视图对象,如JSP、JSTL、PDF等。

视图和视图解析器

  • 请求处理方法执行完成后,最终返回一个ModelAndView对象。对于那些返回String,View和ModeMap等类型的处理方法,Spring MVC 也会在内部将它们装配成一个ModelAndView对象,它包含了逻辑名和模型对象的视图。
  • SpringMVC 借助视图解析器(ViewResolver)得到最终的视图对象(View),最终的视图可以是JSP,也可能是Excel、JFreeChart等各种表现形式的视图。
  • 对于最终究竟采取何种视图对象对模型数据进行渲染,处理器并不关心,处理器工作重点聚焦在生产模型数据的工作上,从而实现MVC的充分解耦。

视图
视图的作用是渲染模型数据,将模型里的数据以某种形式呈现给客户。
为了实现视图模型和具体实现技术的解耦,Spring在org.springframework.web.servlet包中定义了一个高度抽象的View接口。

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

视图解析器

  • SpringMVC为逻辑视图名的解析提供了不同的策略,可以在Spring WEB 上下文中配置一中或多种解析策略,并制定他们之间的先后顺序。每一种映射策略对应一个具体的视图解析器实现类。
  • 视图解析器的作用比较单一:将逻辑视图解析为一个具体的视图对象。
  • 所有的视图解析器都必须实现ViewResolver接口

InternalResourceViewResolver

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

未完待续。。。

时间: 2024-08-02 08:06:23

Spring MVC 中 如何解析视图及视图解析的详细流程的相关文章

spring mvc中 用velocity 模板做视图技术 无法获取session值

问题描述 在controller中是@RequestMapping("/testview")publicStringvelocityTest(HttpSessionsession){session.setAttribute("pp","123");return"testvelocity";然后再vm中$session.getAttribute("pp")却无法获取session值求大虾们帮帮忙

springmvc-页面中js跳转URL,与spring mvc中返回视图重定向,先后问题

问题描述 页面中js跳转URL,与spring mvc中返回视图重定向,先后问题 页面中有javascript函数: function mySubmitFn() { /*formname是页面form表单的名字,表单提交后由spring mvc处理,返回一个重定向视图'return new ModelAndView(new RedirectView("A.jsp"));'*/ formname.submit(); //代码1 window.location.href='B.jsp';/

Spring MVC中的MultiActionController用法详解

Spring MVC 中 Controller 的层次实在是多,有些眼花缭乱了 .在单个的基础上,再新加两三个叫做丰富,再多就未必是好事, 反而会令人缩手新闻片脚,无从定夺.多数 Controller 都是只完 成一个任务,不过也有一个像 Struts 的 DispatchAction 的那样 的 Conntroller, org.springframework.web.servlet.mvc.multiaction.MultiActio nController,意即在一个 Controller

Spring MVC Mybatis多数据源的使用实例解析_java

项目需要从其他网站获取数据,因为是临时加的需求,在开始项目时没想到需要多数据源 于是百度了一下,发现只需要改动一下Spring 的applicationContext.xml文件和编写三个工具类就可以完美实现 applicationContext.xml <!-- 多数据源配置 --> <bean id="ds1" class="org.apache.commons.dbcp.BasicDataSource"> <property na

spring MVC中获取request和response

spring MVC中获取request和response: Java代码   HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();                   HttpServletResponse response = ((ServletRequestAttributes) RequestContextHol

jsp页面传值在spring mvc中的controller中的获取

问题描述 jsp页面传值在spring mvc中的controller中的获取 <% Seller seller =(Seller)session.getAttribute("sellerinfo"); %> <form action="<%=basePath%>plmanage/updateSeller.do" method="post"> <input type="hidden"

Http请求中Content-Type讲解以及在Spring MVC中的应用

引言: 在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值,以及在Spring MVC中如何使用它们来映射请求信息. Content-Type MediaType,即是Internet Media Type,互联网媒体类型:也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息. [html] view pl

spring mvc中使用post方式请求返回405

问题描述 spring mvc中使用post方式请求返回405 后台处理方法 @RequestMapping(value=""/doLogin"" method=RequestMethod.POST) public ModelAndView doLogin(HttpSession session){ logger.info(""user login.""); session.setAttribute(""U

spring MVC 中获取request

spring MVC中如何获取request 呢? 有如下方式: 方式一:在action中注入request 直接在action的参数中增加HttpServletRequest request 例如 /*** * 返回json * @param id * @param roleLevel * @param model * @param request * @param targetView * @return * @throws SecurityException * @throws NoSuc

Spring MVC 中的异常处理 (handling exceptions)

在任何应用开发中都需要对异常情况做处理,web应用也是如此.但是在Spring MVC中,所有的Request都是由Servlet处理的,返回的结果都是Response.也就是说,无论请求过程中出现什么异常,返回的都是一个Response,所有异常信息都要转换成Response. 当然,Spring提供了多种异常信息到Response信息的转换方式: 1. 一些特定的Spring异常已经被自动映射特定的http status code 2. 我们可以通过@ResponseStatus注解将一个异