SpringMvc:视图和视图解析器
请求处理方法执行完成后,最终返回一个ModelAndView对象,对于返回String,View或ModelMap等类型的处理方法,SpringMvc也会在内部将它们装配成一个ModelAndView对象的,它包含了逻辑名和模型对象的视图。
SpringMvc借助视图解析器(ViewResolver)得到最终的视图对象(View),最终的视图可能是JSP,也可能是Excel等各种表现形式的视图。对于最终采取何种视图对象对模型数据进行渲染,处理器并不关心,处理器的工作重点聚焦在生产模型数据的工作上,从而实现MVC的充分解耦。
视图(View)的作用是渲染模型数据,将模型数据里的数据以某种形式呈现给客户,视图对象由视图解析器负责实例化,由于视图是无状态的,所以它们不会有线程安全的问题。
SpringMvc为逻辑视图名的解析提供了不同的策略,可以在Spring WEB上下文中配置一种或多种解析策略,并指定它们的先后顺序,每一种映射策略对应一个具体的视图解析器实现类。视图解析器的作用比较单一:将逻辑视图解析为一个具体的视图对象。所有的视图解析器都必须实现ViewResolver接口。每个视图解析器都实现了Ordered接口并开放出一个order属性,可以通过order属性指定解析器的优先顺序,order越小,优先级越高,SpringMvc会按视图解析器顺序对逻辑视图名进行解析,直到解析成功并返回视图对象,否则将抛出ServletException异常。
若想直接响应SpringMvc渲染的页面,可以使用mvc:view-controller
<mvc:view-controller path="springMvc/test" view-name="hujingwei">
所以当访问路径"springMvc/test"时,会直接跳转到hujingwei.jsp这个页面。
/*
* 关于重定向
* 一般情况下,控制器的方法返回字符串类型的值会被当成逻辑视图名处理,
* 如果返回的字符串中带forward:或redirect:前缀的时候,SpringMvc会对它们进行特殊的处理,其后的字符串会被作为URL来处理
* */
SpringMvc:视图和视图解析器的更多相关文章
- SpringMVC听课笔记(六:视图和试图解析器)
1.spring mvc解析视图 2. 视图和视图解析器 3. 视图 4.常用的视图类 5.视图解析器 1) 2) 3) 4)JSTL 需要注意的是,配置了mvc:view-controller,为 ...
- SSM-SpringMVC-23:SpringMVC中初探异常解析器
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客要讲的是异常解析器,SimpleMappingExceptionResolver简单映射异常解析器 可 ...
- springmvc中的页面解析器ViewResolver不起作用,变量输出字符串的解决方案
<web-app xmlns:web="http://xmlns.jcp.org/xml/ns/javaee"> <servlet> <servlet ...
- springmvc html与jsp解析器
1. 配置多个视图解析器 InternalResourceViewResolver内置了jsp解析器,用于解析jsp页面 此处我们使用了InternalResourceViewResolver,其有一 ...
- springMVC使用HandlerMethodArgumentResolver 自定义解析器实现请求参数绑定方法参数
http://blog.csdn.net/truong/article/details/30971317 http://blog.csdn.net/fytain/article/details/439 ...
- Spring MVC的多视图解析器配置及与Freemarker的集成
一.从freemarker谈起 Freemarker使用模板技术进行视图的渲染.自从看了Struts标签.Freemarker.JSTL的性能对比后,我毅然决定放弃Struts标签了!效率太差…… S ...
- 一步一步自定义SpringMVC参数解析器
随心所欲,自定义参数解析器绑定数据. 题图:from Zoommy 干货 SpringMVC解析器用于解析request请求参数并绑定数据到Controller的入参上. 自定义一个参数解析器需要实现 ...
- DRF之频率限制、分页、解析器和渲染器
一.频率限制 1.频率限制是做什么的 开放平台的API接口调用需要限制其频率,以节约服务器资源和避免恶意的频繁调用. 2.频率组件原理 DRF中的频率控制基本原理是基于访问次数和时间的,当然我们可以通 ...
- rest-framework之解析器
解析器 解析器的作用 根据请求头 content-type 选择对应的解析器对请求体内容进行处理. 有application/json,x-www-form-urlencoded,form-data等 ...
- drf8 解析器
解析器的介绍 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己想要的数据类型的过程. 本质就是对请求体中的数据进行解析. Accept与ContentType请求头. Accept是告诉 ...
随机推荐
- sqlserver 获取当前操作的数据库名称
Select Name From Master..SysDataBases Where DbId=(Select Dbid From Master..SysProcesses Where Spid = ...
- php mongodb类
class HMongodb { private $mongo; //Mongodb连接 private $curr_db_name; private $curr_table_nam ...
- img图片之间的间距问题
[问题]页面中如果有多张图片,那么图片之间会有一些间距,在某些情况下(如切好的图片再次拼接),在显示上就会出现一些问题.效果如下: 对应代码: <div class="f0" ...
- An Implementation of Double-Array Trie
Contents What is Trie? What Does It Take to Implement a Trie? Tripple-Array Trie Double-Array Trie S ...
- Magento的迁移方法
Magento有很多配置内容,比如说CMS配置页.Static Stock.多语言配置等等,所以做数据迁移很有必要性,下面就说说如何做迁移 这个技术文章是从网上整理的,不过一个很重要的点被疏忽了,我在 ...
- 超爱http://www.runoob.com/菜鸟编程
超爱http://www.runoob.com/菜鸟编程 http://www.runoob.com/
- urlencode和rawurlencode的区别
摘自http://blog.csdn.net/doggie1024/article/details/5698615 urlencode:返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将 ...
- pages 元素(ASP.NET 设置架构)web.config 详解
pages 元素(ASP.NET 设置架构) buffer="[True|False]" enableEventValidation="[True|False] ...
- 使用oracle外部表进行数据泵卸载数据
数据泵卸载Oracle9i引入了外部表,作为向数据库中读取数据的一种方法.Oracle 10g则从另一个方向引入了这个特性,可以使用CREATE TABLE语句创建外部数据,从而由数据库卸载数据.从O ...
- js数组判断是否含有某一个元素
arr.indexOf('a')如果有则返回的a的下标位置,否则返回false.