Spring mvc视图机制

所有的web应用的mvc框架都有它定位视图的方式。Spring提供了视图解析器供你在浏览器中显示模型数据,而不必被拘束在特定的视图技术上。

Spring的控制器Controller会返回一个ModelAndView的实例。Spring根据ModelAndView实例中的View和Model把信息反馈给用户。Spring中的视图是以名字为标识的,ViewResolver是通过名字来解析view的。Spring提供了多种视图和视图解析器。

A、ModelAndView

org.springframework.web.servlet.ModelAndView

public class ModelAndView extends Object

ModelAndView如其名称所示,它代表了Spring Web MVC中呈现画面时所使用的Model与View,由于Java一次只能返回一个物件,所以ModelAndView的作用封装这两个物件,以方便您一次返回Model与View这两个物件。

构造方法

ModelAndView(String viewName)

Convenient constructor when there is no model data to expose.

最简单的ModelAndView是只有View的名称,之后View名称被View resolver,也就是org.springframework.web.servlet.View的实例解析,例如 InternalResourceView或JstlView等等。

ModelAndView(String viewName, Map model)

Creates new ModelAndView given a view name and a model.

如果您要返回呈现画面时所需的Model资料,则可以使用Map来收集呈现View时所需的资料,然后在建构ModelAndView作为建构时的参数。

ModelAndView(String viewName, String modelName, Object modelObject)

Convenient constructor to take a single model object.

返回单个model时使用。

B、ViewResolver(视图解析器)

org.springframework.web.servlet.ViewResolver

public interface ViewResolver

现在我们有了view名称,也有了显示时需要的model资料,那么我们如何显示view了。这就需要用到ViewResolver,它提供了从视图名称到实际视图的映射。

(例如我们得到的view名称为test,通过ViewResolver我们把它映射到/WEB-INF/jsp/test.jsp的资源上,当然也可以把test映射到test.pdf的资源上,这部分工作由ViewResolver来完成,但是具体如何显示test.jsp或test.pdf,就需要View来实现了)。

springMVC ModelAndView 作用与功能解析 【转】的更多相关文章

  1. 8: springMVC ModelAndView 作用与功能解析

    Spring mvc视图机制 所有的web应用的mvc框架都有它定位视图的方式.Spring提供了视图解析器供你在浏览器中显示模型数据,而不必被拘束在特定的视图技术上. Spring的控制器Contr ...

  2. SpringMVC源码之参数解析绑定原理

    摘要 本文从源码层面简单讲解SpringMVC的参数绑定原理 SpringMVC参数绑定相关组件的初始化过程 在理解初始化之前,先来认识一个接口 HandlerMethodArgumentResolv ...

  3. 用SpringMvc实现Excel导出功能

    以前只知道用poi导出Excel,最近用了SpringMvc的Excel导出功能,结合jxl和poi实现,的确比只用Poi好,两种实现方式如下: 一.结合jxl实现: 1.引入jxl的所需jar包: ...

  4. [国嵌攻略][047][MMU功能解析]

    MMU功能解析 1.Memory Management Unit(存储器管理单元) 2.两个进程读取同一个地址能读到不同的值.因为进程访问的是虚拟地址,通过MMU转换成不同的物理地址.不同的进程通过M ...

  5. java -D 参数功能解析

    我们都知道在启动tomcat或直接执行java命令的时候可以通过参数-XX等来配置虚拟机的大小,同样,也应该留意到java -Dkey=value的参数.那么这个参数是什么作用呢? 使用案例 其实,在 ...

  6. hosts是什么意思?Hosts文件有什么作用和功能?

    hosts是什么意思?Hosts文件有什么作用和功能? 熟悉网络的朋友们都会用到hosts文件,针对还不清楚hosts是什么意思以及hosts文件有什么功能和作用?针对此问题,本文就为大家进行解答   ...

  7. SQL Server 数据加密功能解析

    SQL Server 数据加密功能解析 转载自: 腾云阁 https://www.qcloud.com/community/article/194 数据加密是数据库被破解.物理介质被盗.备份被窃取的最 ...

  8. 微信小程序0.11.122100版本新功能解析

    微信小程序0.11.122100版本新功能解析   新版本就不再吐槽了,整的自己跟个愤青似的.人老了,喷不动了,把机会留给年轻人吧.下午随着新版本开放,微信居然破天荒的开放了开发者论坛.我很是担心官方 ...

  9. Unity5 新功能解析--物理渲染与standard shader

    Unity5 新功能解析--物理渲染与standard shader http://blog.csdn.net/leonwei/article/details/48395061 物理渲染是UNITY5 ...

随机推荐

  1. 前端编程工具WebStorm 10 工具的快捷使用方式

    1.如果是一个空白的文档,要想快速生成HTML的基本结构,可以写一个! 然后按一下tab键,如果是写的一个标签的名字,则会生成基本的标签结构. 2.h1{}:{}中写要显示的文本 3.h1[]:[]中 ...

  2. IsPostBack用法

    可以自己定义 在页面中定义隐藏的input,设置为ispostback. <form action="" method=""> <input ...

  3. P3157 [CQOI2011]动态逆序对

    P3157 [CQOI2011]动态逆序对 https://www.luogu.org/problemnew/show/P3157 题目描述 对于序列A,它的逆序对数定义为满足i<j,且Ai&g ...

  4. [leetcode]112. Path Sum路径和(是否有路径)

    Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all ...

  5. IBM MQ 学习

    import java.io.IOException; import java.util.HashMap; import java.util.Map; import com.ibm.mq.MQC; i ...

  6. php多进程中的阻塞与非阻塞

    我们通过pcntl_fork来创建子进程,使用pcntl_wait和pcntl_waitpid来回收子进程. 子进程退出后,父进程没有及时回收,就会产生僵尸进程.   例1: <?php def ...

  7. 有关于mfc webbrowser插件的使用

    最近写的东西中常常需要嵌入一些浏览器,微软提供了一个比较好的接口,可以在MFC写的程序中嵌入一个简易的浏览器,是以ActiveX插件的形式提供的接口,使用起来也比较的方便,这里我就简单记录下这个插件的 ...

  8. Spring框架的特点

    1. 为什么要学习Spring的框架 * 方便解耦,简化开发 * Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理 * AOP编程的支持 * Spring提供面向切面 ...

  9. Jmeter从一个Reply Message中获取N个参数的值,然后根据这个参数对后面的操作循环N次(ForEach Controller的用法)

    假设Reply Message是这样的: <root><result code="0" msg="success" /><m k= ...

  10. 设计资源:三个精美APP原型例子下载

    原型设计是整个产品生产过程中不可或缺的一环,无论你是移动端UI设计师或是网页设计师,原型设计都会让整个设计过程更加轻松.原型是产品概念的具象化,它让每个项目参与者都能查看并提出意见以便在产品发布前日臻 ...