首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring MVC之视图解析

其中view可以是字符串类型也可以是View类型,如果是字符串类型,则表示逻辑视图名,如果是View类型,则其即为我们要转换的目标view;这里model是一个Map类型的对象,其保存了渲染视图所需要的属性...在进行视图解析时,如果ModelAndView中的view是字符串类型的,那么要解析的视图存储位置就通过“prefix + (String)view + suffix”的格式生成要解析的文件路径,并且将其封装为一个..., // 则每次请求时都会重新解析生成视图对象 if (!...request中pathVariable,staticAttribute与用户返回的model属性 // 合并为一个Map对象,以供给后面对视图的渲染使用 Map视图的渲染主要分为了三步:①合并用户返回的model数据和request中的pathVariable与staticAttribute等数据;②判断当前是否为文件下载类型的视图解析,如果是,则设置

60820

【小家Spring】Spring MVC容器的web九大组件之---ViewResolver源码详解---视图解析器ViewResolver详解

在获得了ModelAndView对象之后,SpringMVC就需要把该View渲染给用户,即返回给浏览器。...当Handler返回的ModelAndView中不包含真正的视图,只返回一个逻辑视图(比如返回一个字符串)名称的时候,ViewResolver就会把该逻辑视图名称解析为真正的视图View对象。...View是真正的进行视图渲染(对response里写东西),把结果返回给浏览器的 ViewResolver SpringMVC 用于处理视图最重要的两个接口是 ViewResolver 和 View...View 接口的主要作用是用于处理视图,然后返回给客户端。...视图、渲染方面,而本文就做了一个非常好的铺垫作用~~~

84720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    彻底读懂 springMVC 请求处理流程

    从⽅法的定义可以看出,Controller层返回的String类型视图名viewName 最终会在这⾥被解析成为View。...View是⽤来渲染⻚⾯的,也就是说,它会将程序返回的参数和数据填⼊模板中,⽣成html⽂件。...因为重定向时么有传递参数这⼀功能的,如果不想把参数写进URL(不推荐),那么就可以通过 FlashMap 来传递。...并返回真正的view 给DispatcherServlet 9、DispatcherServlet 将得到的视图进行渲染,填充到request域中 10、返回给客户端响应结果。...要将逻辑视图名解析为物理视图名 4、封装View视图对象之后,调⽤了view对象的render⽅法 5、渲染数据 6、把modelMap中的数据暴露到request域中,这也是为什么后台model.add

    3.1K50

    Spring MVC各组件近距离接触--下--04

    viewName) public ModelAndView(String viewName,Map model) public ModelAndview(String viewName,String...ModelAndView内部提供的属性有下面三个: //保存view对象或者视图名 private Object view; //存放模型数据 private ModelMap model;...中的视图信息 ModelAndView可以返回逻辑视图名,或者View实例,如果直接返回了具体的View实例,那么,DispathcerServlet将直接从ModelAndView中获取该View实例并渲染视图...,DispatcherServlet将寻求ViewResolver的帮助,根据ModelAndView中的逻辑视图名称获取一个可用的View实例,然后再渲染视图: View view=null; ,,,...至于ModelMap中保持的模型数据将会在视图渲染阶段,由具体的View实现类来获取并使用。

    43340

    Spring MVC各组件近距离接触--下下--05

    通过引入该策略抽象接口, 我们可以极具灵活servlet中的视图渲染逻辑得以剥离出来的关键组件。通过引入该策略抽象接口,我们可以极具灵活性地支持各种视图渲染技术。...render(⋯)方法中实现最终的视图渲染工作,但这些对Dispatcherservlet来说是透明的, Dispatcherservlet只是直接接触ViewResolver所返回的view接口, 获得相应引用后把视图渲染工作转交给返回的...---- View实现原理回顾 总地来说,当前绝大多数的视图渲染技术都是构建在模板的原理之上。我们回想一下,这种基于模板视图生成方式在我们的生活中到处可见。...createView(String viewName, Locale locale) throws Exception { //判断当前视图解析器能否解析当前视图名,如果不能直接返回null,表示无法解析...viewName映射到具体某个页面的场景已然不多,而是被返回JSON字符串所替代,上面给出的自定义View实现其实就是返回JSON字符串的场景应用,但是使用过SpringMVC的小伙伴都知道,只要我们在

    84730

    SpringMvc 如何同时支持 Jsp 和 Json 接口?

    2、在需要返回 Json 数据的方法上追加注解 @ResponseBody,并且配置对应的 Json 消息转换器。此时将不会使用指定的 ViewResolver 渲染页面,而是返回 Json 数据。...一个返回Json数据,一个渲染Jsp页面: @Controller @Slf4j public class MyController { /** * 这个接口将会返回json数据...从现象上来看,@ResponseBody 似乎把响应数据的渲染路径改变了,之前明明要渲染页面,现在硬生生改成了返回 Json 数据。 没错,就是这样。...只要加了 @ResponseBody 注解,就会直接把接口返回的数据通过Json写到响应中,后续的视图解析器将不会被执行,也就不存在视图渲染一说了。...提示:会根据返回值的类型落到对应的处理器中,对于我们的例子来说,会由 ModelAttributeMethodProcessor 处理器执行:寻找 WEB-INF/view/toJson.jsp 页面尝试渲染

    1.1K30

    ModelAndViewContainer、ModelMap、Model、ModelAndView详细介绍【享学Spring MVC】

    model和视图view相关信息.。...是否忽略defaultModel 默认值是false:不忽略 private boolean ignoreDefaultModelOnRedirect = false; // 此视图可能是个View...mavContainer.getStatus()); // 真正的View 可见ModelMap/视图名称、状态HttpStatus最终都交给了Veiw去渲染 if (!...HttpEntity的方法 // 看一看到,这种返回值的都会标注为已处理,这样就不再需要视图(渲染)了 @Override public void handleReturnValue(@Nullable...如果返回值是后三者,又是如何找到view完成渲染的呢? 这个问题我抛出来,本文不给答案。因为都聊到这了,此问题应该不算难的了,建议小伙伴必须自行弄懂缘由(请不要放过有用的知识点)。

    1.4K40

    万字长文,深度解析SpringMVC 源码,让你醍醐灌顶!!

    的后缀 prefix 1.8、View:视图 负责将结果展示给用户,View 接口源码如下,render 方法根据指定的模型数据(model)渲染视图,即 render 方法负责将结果输出给客户端。...返回值为 Callable 类型时的解析器,表示异步请求 ModelMethodProcessor 返回值为 Model 类型时的解析器 ModelAndViewMethodReturnValueHandler...View 对象 ⑦-2-2:调用视图的 render 方法渲染视图,将结果输出到客户端 下面进去细看一下 ⑦-2-1:调用视图解析器解析视图名称得到视图 View 对象 //⑦-2-1:调用视图解析器解析视图名称得到视图...,遍历视图解析器,解析视图名称,得到视图对象 View protected View resolveViewName(String viewName, @Nullable Map视图解析,根据 Model 和 View,来渲染视图 10、渲染视图完毕执行拦截器的 afterCompletion(…)方法【逆向】 11

    2.2K24

    ASP.NET Core中使用Razor视图引擎渲染视图为字符串

    当然在MVC 4、5的时代,我们也使用过如RazorEngine这样的第三方的视图引擎,那时候MVC中的Razor与框架耦合的比较紧密,第三方开源组件帮我们实现了在任意项目中使用Razor渲染视图为文本的方式...二、实现视图渲染器   其实在ASP.NET Core MVC中给我们提供了这样的方法,只是用起来不太方便,我们来对它进行一下封装。   ...框架早已经为我们提供了视图渲染的接口 IRazorViewEngine 通过它的FindView方法来查找视图及.cshtml文件,当然查找方法也与MVC中的视图路径规则是对应的,本来就是一个东西嘛:)...(string viewName, object model); }   然后是实现类了,代码很简单一看就懂了: public class ViewRenderService : IViewRenderService...ArgumentNullException($"{viewName} does not match any available view"); }

    1.8K40

    ContentNegotiation内容协商机制(三)---在视图View上的应用:ContentNegotiatingViewResolver深度解析【享学Spring MVC】

    本文就教你用一个@RequestMapping也能返回多个View~ 注意:我这里指的是返回的是View视图,对于消息体的这种返回方式,不是本处讨论的范畴,它属于case 1。...: @Nullable protected View resolveViewName(String viewName, @Nullable Map model, Locale...第一个最先解析到不返回null的 就是最终返回的view视图 for (ViewResolver viewResolver : this.viewResolvers) { View view...useNotAcceptableStatusCode = false; // 当无法获取到具体的视图时,会走defaultViews @Nullable private ListView> defaultViews...= null) { // 很显然,找到了最佳的就返回渲染吧 return bestView; } } ... // useNotAcceptableStatusCode

    1.1K10

    SpringMVC之ModelAndView的用法「建议收藏」

    业务处理器调用模型层处理完用户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后让该ModelAndView返回该Spring MVC框架。..., serif; line-height: 18px;”>该属性用来存储返回的视图信息 [java] view plain copy /** Model Map */ private...构造ModelAndView对象当控制器处理完请求时,通常会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到DispatcherServlet。...(1)当你只有一个模型属性要返回时,可以在构造器中指定该属性来构造ModelAndView对象: [java] view plain copy package com.apress.springrecipes.court.web...(String viewName, Map model),Map对象中设定好key与value值,之后可以在视图中取出,如果您只是要返回一个Model对象,则可以使用下面这个 ModelAndView版本

    3K30
    领券