Spring mvc视图机制

转载 2015年11月20日 10:17:54

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来实现了)。

相关文章推荐

Rabbitmq延迟队列(两个exchange,多个队列)

Rabbitmq延迟队列,两个exchange,多个队列
  • SaRoot
  • SaRoot
  • 2017年03月30日 18:31
  • 671

微信公众平台开发-发送模板消息

微信公众账号开发-发送模板消息:   内容概要 本篇文章主要叙述如何在微信公众帐号上实现“发送模板消息开发”功能。包含json的封装与解析。   何谓模板消息 为了保证用户不受到骚扰,在开...

Spring MVC源码分析(续)——视图解析过程

在“Spring MVC源码分析(续)——请求处理 ” 中已大概的描述了Spring MVC中如何为不同的请求找到其对应的处理器。经过这个过程,其获得了一个“视图对象”,也即ModelAndVie...
  • shi1122
  • shi1122
  • 2013年02月17日 23:25
  • 5569

spring mvc ContentNegotiatingViewResolver 根据路径后缀,选择不同视图

理论 public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport implements ViewR...

Spring MVC之视图

InternalResourceViewResolver对于视图这一块相信大家每天都在用,而且也都觉得用的很方便,而且用的最多的视图解析器应该都是这家伙: org.springframework.w...

Spring MVC入门3——返回JSON或XML等多种视图

上一篇的例子返回的都是HTML的页面,是为人进行服务的页面,供人进行阅读的。如果我们希望将Web作为一种服务,返回数据为机器服务,例如返回JSON,XML等,我们应该如何实现呢? 很显然,根...

spring MVC多视图配置

spring MVC多视图配置
  • ght521
  • ght521
  • 2016年11月18日 13:57
  • 149

Spring MVC 自学杂记(六) -- 多视图解析器配置

Spring MVC 最近遇到过在spring MVC中配置多视图解析器的问题,翻阅了很多文档及博客,也解决了自己的问题,在此记录学习一下。问题描述:在多人合代码的情况下,已经写好了各自的视图返回格式...

项目生产环境下 log4j 和spring MVC视图解析viewResolvers的配置

首先log4j和视图解析viewResolvers在spring管理的项目中常用到,而且每次没有配置好log4j,IDE集成工具的控制台都不好看到输出日志。另外视图解析viewResolvers的运用...
  • EDIAGD
  • EDIAGD
  • 2013年01月30日 23:47
  • 703
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring mvc视图机制
举报原因:
原因补充:

(最多只允许输入30个字)