`
123003473
  • 浏览: 1039209 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spring MVC 学习笔记 Viewresol和View

 
阅读更多
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的名称列表。

【转载地址】http://www.cnblogs.com/crazy-fox/archive/2012/02/18/2357675.html
分享到:
评论

相关推荐

    spring mvc学习笔记

    spring mvc学习笔记spring mvc学习笔记spring mvc学习笔记spring mvc学习笔记spring mvc学习笔记

    Spring MVC 学习笔记

    传智播客 Spring MVC 学习笔记

    spring MVC学习笔记

    spring mvc的学习笔记,主要讲解了基于xml的配置,和如何增加spring mvc拦截器,如何返回json报文

    精通Spring MVC 4

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。Spring MVC4是当前zuixin的版本,在众多特性上有了进一步的提升。, 在精通Spring...

    大优惠 Spring MVC学习指南(第2版)2017.pdf

    Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-Controller的缩写。作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。 ...

    spring mvc 基础笔记 源代码

    spring mvc 基础笔记 源代码. 下载后倒入到eclipse当中。 请重新倒入Tomcat安装目录lib文件夹下的servlet-api.jar. 如果是jQuery.js文件有红色叉表示错误的话请无视。

    Spring3 MVC 学习笔记 入门

    Spring3 MVC 学习笔记 入门 Spring3 MVC 学习笔记 入门

    spring_mvc学习笔记

    spring mvc学习笔记,包括学习遇到的问题和解决方法。

    [免费]Spring MVC学习指南(高清)

    Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-Controller的缩写。作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。 ...

    Springcloud学习笔记.md

    Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...

    Spring MVC学习指南 高清完整.pdf版下载

    通俗移动的Spring MVC入门书籍。请尊重版权,禁止用于商业目的。

    Spring MVC学习指南

    以下这个学习案例是我最近学习Spring MVC时跟从一本 书上的示例,原文中的示例代码有一些小错误,不过我 在调试的过程中已经给予了修正,如还有其它错误,还 请各位批评指正。 对于现有较成熟的Model-View-...

    Spring MVC学习笔记MD.7z

    这是个人的Spring MVC的MD版学习笔记+源码文件,具体参考:https://blog.csdn.net/m0_46153949/article/details/114260215

    Spring MVC 学习笔记 九 json格式的输入和输出

    工程文件 博文链接:https://starscream.iteye.com/blog/1067606

    Spring MVC 学习记录总结1

    Spring MVC 学习记录总结Spring MVC 是目前主流的实现MVC设计模式的框架,是Spring 框架的一个分支产品,以 Spring IoC 容器

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    NULL 博文链接:https://starscream.iteye.com/blog/1072180

    servlet JSP 和 spring MVC学习指南

    servlet , jsp和spring MVC学习指南电子书,spring MVC学习指南系列书籍。

Global site tag (gtag.js) - Google Analytics