Spring MVC 学习笔记 Viewresol和View

Vue3+codemirror6实现公式(规则)编辑器 vue3+codemirror6+ts实现公式编辑器,可以插入标签、公式,也有补全提示 阅读详情

Spring MVC使用ViewResolver来根据controller中返回的view名关联到具体的View对象。使用View对象来渲染返回值以生成最终的视图,如html,json或pdf等。

Spring MVC中,通过在servlet context配置文件中配置的ViewResolver Bean对象来注册ViewResolver对象,其在spring mvc的dispatcherServlet中的使用过程其实和之前提到的HandlerMapping和HanderAdapter类似。

DispatcherServlet初始化时,首先根据当前context中注册的Beans中实现了ViewResolver接口的Bean列表来生成ViewResolver对象列表,并根据这些ViewResolver中的order属性进行排序,如果没配置order属性则此ViewResolver的优先级最低。

当HandlerAdapter调用完毕handler method返回view对象时,dispatcherServlet将根据当前已经注册了的ViewResolver列表的顺序去调用其中的resolveViewName方法,以根据viewName找到实际对应的View对象,并根据第一个返回的View对象中的render方法来生成最终的用户视图。

与HandlerMapping和HanderAdapter类似,DispatcherServlet也提供了参数来允许用户指定是否只加载自己的ViewResolver,当属性detectAllViewResolvers设置为false时,则spring mvc将查找名为viewResolver的bean 来作为当前唯一的ViewResolver。

        <init-param>
            <param-name>detectAllViewResolvers</param-name>
            <param-value>false</param-value>
        </init-param>

UrlBasedViewResolver与InternalResourceViewResolver

之前的例子中,为将返回的viewname映射到对应的jsp上,在servlet context 配置文件中是这么定义的

复制代码
    <bean id="viewResolver"
       class="org.springframework.web.servlet.view.UrlBasedViewResolver">
       <property name="viewClass"
           value="org.springframework.web.servlet.view.JstlView" />
       <property name="prefix" value="/WEB-INF/jsp/" />
       <property name="suffix" value=".jsp" />
   </bean>
复制代码

这个定义的含义是指UrlBasedViewResolver将使用JstlView对象来渲染结果,并将handler method返回的modelAndView基础上,加上目录前缀/WEB-INF/jsp/和文件名称后缀.jsp。例如结果返回的viewName为helloworld,则对应的实际jsp为/WEB-INF/jsp/helloworld.jsp

当返回的viewName的前缀为forward:时,spring mvc将结果通过forward的方式转到对应的视图,例如forward:helloworld。这也是spring mvc缺省的使用模式。

当返回的viewName的前缀为redirect:时,spring mvc将结果通过redirect的方式转到对应的视图。例如redirect:helloworld

 

InternalResourceViewResolver为UrlBasedViewResolver的子类,它将InternalResourceView作为缺省的View类,如果当前classpath中有jstl的jar包时则使用JstlView作为缺省的view来渲染结果。因此以下使用InternalResourceViewResolver的定义应该和之前使用UrlBasedViewResolver定义的viewresolver的作用相同。

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

除此之外,InternalResourceViewResolver还提供了
alwaysInclude属性来要求返回的结果使用include方式而不是forward方式
exposeContextBeansAsAttributes属性以将当前spring 环境中的 beans作为request   attritbutes来暴露到页面上。
exposedContextBeanNames属性来限制能够暴露到页面上的spring bean的名称列表。

分类:  java
标签:  java,  spring mvc,  sping
0
0
(请您对文章做出评价)
« 上一篇: Spring MVC 学习笔记 handlerMapping和handlerAdapter
» 下一篇: Spring MVC 学习笔记 controller中其他可用的annotation
posted on  2012-02-18 22:04  种菜得瓜 阅读( 11945) 评论( 1)  编辑  收藏

Feedback

#1楼   2014-06-01 09:48 莫名的忧伤   
你好,我看了你写的博客,还有点疑问想请教,上面说:
当返回的viewName的前缀为forward:时,spring mvc将结果通过forward的方式转到对应的视图,例如forward:helloworld。这也是spring mvc缺省的使用模式。

当返回的viewName的前缀为redirect:时,spring mvc将结果通过redirect的方式转到对应的视图。例如redirect:helloworld。
如说这样写的话:forward:/helloworld和redirect:/helloworld这样写是什么意思呢?我刚接触这方面的知识,对于这些还是有些模糊,希望您能解惑!

深入探究ASP.NET Core读取Request.Body的正确方式 前言# 相信大家在使用ASP.NET Core进行开发的时候,肯定会涉及到读取Request.Body的场景,毕竟我们大部分的POST请求都是将数据存放到Http的Body当中。因为笔者日常开发所使用的主要也是ASP.NET Core所以笔者也遇到这这种场景,关于本篇文章所套路的内容,来自于在开发过程中我遇到的关于Request.Body的读取问题。在之前的使用的时候,基本上都是借助搜索引擎搜索的答案,并没有太关注这个,发现自己理解的和正确的使用之间存在很大的误区。故有感而发,便写下此文,以作记录。学无止境 阅读详情

相关推荐

PICO SCOPE 二次开发

基于C#开发一个简单的PICO示波器的上位机工作,与MCC600运动控制卡一起,实现数据自动采集

nixoncheng的博客 1147

Spring MVC 学习笔记 Viewresol和View

Spring MVC 学习笔记 Viewresol和View Spring MVC使用ViewResolver来根据controller中返回的view名关联到具体的View对象。使用View对象来渲染返回值以生成最终的视图,如html,json或pdf等。 Spring MVC中,通过在servlet context配置文件中配置的Vie...

weixin_30794851的博客 211

从实验室到生产线:Qwen3-Omni后训练技术在实际业务中的落地挑战

本文探讨了Qwen3-Omni后训练技术在实际业务中的落地挑战,重点分析了多模态AI在工业应用中的关键问题与解决方案。通过金融风控、跨境电商等场景案例,揭示了通用模型与垂直需求的矛盾,并提供了知识蒸馏、语音合成优化等实战经验,助力企业实现技术到业务的转化。

weixin_29035147的博客 267

InternalResourceViewResolver和UrlBasedViewResolver

1.InternalResourceViewResolver为UrlBasedViewResolver的子类。      前者的用法如下:                                      因此实例化时候缺省提供了InternalResourceView。   后者的用法如下:

Ez` 1674

RK3576平台Buildroot嵌入式Linux镜像构建实战

嵌入式Linux镜像构建是连接硬件能力与软件功能的核心技术环节,其本质是基于目标SoC架构的交叉编译、内核定制与根文件系统集成过程。原理上依赖工具链适配、设备树绑定、分区镜像生成等关键步骤,技术价值在于实现轻量、确定、可复现的系统交付。典型应用场景涵盖ARM64开发板(如RK3576)、工业边缘网关及国产化信创终端。本文以TaishanPi-3为载体,深入解析Buildroot在RK3576平台上的配置裁剪、并行编译优化、genimage分区合成及update.img烧录准备,覆盖从环境选型(Ubuntu

weixin_36047538的博客 139

从T型结到Wilkinson:5分钟搞懂功分器选型指南(附最新射频测试数据对比)

本文通过对比T型结、电阻型和Wilkinson三种功分器的核心原理与实测数据,提供了清晰的射频功分器选型指南。文章结合最新的2.4GHz ISM频段测试数据,分析了插入损耗、回波损耗和端口隔离度等关键指标,并针对窄带物联网、射频测试及合成系统等不同应用场景,给出了具体的选型建议和实战提醒,帮助工程师根据系统需求做出最优决策。

bush的博客 305

Spring的视图解析UrlBasedViewResolver与InternalResourceViewResolver比较

1.InternalResourceViewResolver为UrlBasedViewResolver的子类。      前者的用法如下:                                      因此实类化时候缺省提供了InternalResourceView。   后者的用法如下:

jerryHH_2012的专栏 2866

SAP面试全过程(已拿offer)

周五打电话给我说过了SAP第一轮面试,第二轮要在下周四北京,这几天终于体会到了什么叫做重压下的感觉,越复习越虚,看别人的面经都感觉卧槽这问题也巨难了吧...连去北京可以见妹子这种事情都感觉一点心情都没有。面前准备固然是要有的,但关键是平时就要有料,多想想自己做的项目。当作一个给自己的提醒吧!

cloudray8580的专栏 4万+

SpringMVC 视图解析流程 [ 以 InternalResourceView 和 InternalResourceViewResolver 为例 ] (SpringMvc 5.0.8)

1.先来看下DispatcherServlet类的doDispatch()方法 protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { HttpServletRequest processedRequest = request; Handle...

yangfanor的专栏 2589

告别密码本!用Windows NPS给华为/华三交换机做Radius认证,SSH登录更安全

本文详细介绍了如何利用Windows NPS实现华为/华三交换机的Radius认证,提升SSH登录安全性。通过集中化管理、精细化控制和完整审计追踪,企业可告别传统密码本,大幅提升网络设备管理效率。文章包含NPS服务部署指南、交换机配置详解及调试技巧,助力企业构建安全高效的统一认证体系。

weixin_42549723的博客 419

KIBANA可视化管理界面说明

更说明转自https://blog.youkuaiyun.com/IT_ZRS/article/details/125496588 1 主要结构功能 使用浏览器访问 ip:5601 默认端口,进入首页 Discover:日志管理视图 主要进行搜索和查询 Visualize:统计视图 构建可视化的图表 Dashboard:仪表视图 将构建的图表组合形成图表盘 Timelion:时间轴视图 随着时间流逝的数据 APM:性能管理视图 应用程序的性能管理系统 Canvas:大屏展示

tian830937的专栏 7083

笔记29 视图解析 ——InternalResourceViewResolver

Spring自带了13个视图解析器,能够将逻辑视图名转换为物理实现 首先将会介绍 InternalResourceViewResolver,这个视图解析器一般会用来 解析JSP视图。  1.  Spring提供了两种支持JSP视图的方式:  InternalResourceViewResolver会将视图名解析为JSP文 件。另外,如果在你的JSP页面中使用了JSP标准标签库 (...

lyj2018gyq的博客 1382

基于STM32F103设计的智能门锁(支持多种开锁解锁方式)

这个智能锁模型是基于STM32平台开发的,支持多种开锁方式。其中,一种是使用RC522射频卡读卡器读取IC卡卡号和内部数据,并验证身份后开锁;另一种是通过连接蓝牙地址来确认业主身份,实现了蓝牙自动开锁功能;最后一种是通过ESP8266连接腾讯云物联网平台,并且用户可以通过微信小程序“腾讯连连”进行远程开锁和关锁。这样,用户就可以选择最方便的方式来进行开锁操作了。

3万+

Spring MVC 学习笔记 四 Viewresol和View

Spring MVC使用ViewResolver来根据controller中返回的view名关联到具体的View对象。使用View对象来渲染返回值以生成最终的视图,如html,json或pdf等。 Spring MVC中,通过在servlet context配置文件中配置的ViewResolver Bean对象来注册ViewResolver对象,其在spring mvc的dispatcherSe...

行行 172

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Spring MVC中的Viewresol和View

Spring MVC使用ViewResolver来根据controller中返回的view名关联到具体的View对象。使用View对象来渲染返回值以生成最终的视图,如html,json或pdf等。 Spring MVC中,通过在servlet context配置文件中配置的ViewResolver Bean对象来注册ViewResolver对象,其在spring mvc的dispatcher...

u011823777的博客 188

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Spring : 视图解析Viewresol和View

Spring MVC使用ViewResolver来根据controller中返回的view名关联到具体的View对象。使用View对象来渲染返回值以生成最终的 视图,如html,json或pdf等。 Spring MVC中,通过在servlet context配置文件中配置的ViewResolver Bean对象来注册ViewResolver对象,其在spring mvc的

执子之手 1941

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

springmvc学习笔记1_DispatcherServlet_HandlerMapping_HandlerAdapter_ViewResolver

参考源: http://java.itcast.cn/news/20150512/13543033211.shtml 这是传智播客的燕青老师讲的 讲的很好 强烈推荐 SpringMvc流程 * 1、前端控制器--DispatcherServlet的doDispatch方法 * 2、获取处理器映射器--mappedHandler = getHandler(processedReq

undergrowth的专栏 1651

SpringMVC 总结

SpringMVC 总结

凡的博客 987

SpringMVC视图解析器InternalResourceViewResolver

转载自http://www.tonitech.com/2474.html 今天在搭建SpringMVC开发框架的时候,出现freemarker的视图没有找到,报404错误。我的配置代码如下: 我配置了两个视图解析器,所以视图解析是链式的,如果一个视图解析

wwzuizz的博客 1154

SpringMVC 组件解析(SpringMVC执行流程、SpringMVC注解解析、SpringMVC 配置文件中的资源解析器 InternalResourceViewResolver)

一、SpringMVC 执行流程 DispatcherServlet: 只负责调度,组件的调用 HandlerMapping:对请求进行解析,找到具体的处理器(根据 xml配置,注解进行查找)。返回给DispatcherServlet HandlerAdaptor:调用处理器(Controller)。Controller处理完后,返回ModelAndView。HandlerAdaptor将ModelAndView返回给DispatcherServlet ViewResolver: 从ModelA

Java_c# 561

转载笔记29 视图解析 ——InternalResourceViewResolver

转载网上的文章,作为记录。 Spring自带了13个视图解析器,能够将逻辑视图名转换为物理实现 首先将会介绍 InternalResourceViewResolver,这个视图解析器一般会用来 解析JSP视图。 1.  Spring提供了两种支持JSP视图的方式: InternalResourceViewResolver会将视图名解析为JSP文 件。另外,如果在你的JSP页面中使用了JSP标准...

qq_34620838的博客 480

UrlBasedViewResolver类简介说明

UrlBasedViewResolver类简介说明

qq_25073223的博客 434

springMVC初探视图解析器——InternalResourceViewResolver

springmvc在处理器方法中通常返回的是逻辑视图,如何定位到真正的页面,就需要通过视图解析器。 springmvc里提供了多个视图解析器,InternalResourceViewResolver就是其中之一: 最常用的视图解析器:InternalResourceViewResolver 当处理器返回“index”时,InternalResourceViewResolver解析器...

weixin_30412167的博客 478
上一篇: Spring 中关于资料上传与 MultipartResolver
下一篇: Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值