springmvc组件--ViewResolver_weixin_30858241的博客-程序员秘密

技术标签: java  

  无论Controller是何种返回类型最终都会被封装成一个ModelAndView对象,然后交由ViewResolver解析成Vie对象。该接口定义非常简单,根据传入视图的逻辑名(var1)和相应的国际化信息返回View对象。

public interface ViewResolver {
    View resolveViewName(String var1, Locale var2) throws Exception;
}

  大部分接口的实现类是继承AbstractCachingViewResolver来简介实现该接口,AbstractCachingViewResolver提供了缓存视图对象的功能,也可以在配置视图解析器的时候禁用缓存来提高开发效率。

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

    </bean>

  SpringMVC提供的ViewResolver可以分为两大类:面向单一视图和面向多视图类型。所谓面向单一视图指可通过视图模板的位置来定位视图,面向多视图需要额外的配置文件来确定视图。

面向单一视图

  所有面向单一视图的视图解析器都直接或间接的继承自UrlBasedViewResolver,他们所具有的共同特点是只需要配置逻辑视图的位置,视图解析器就会利用视图模板和ModelAndView中的数据构建出View实例并返回。比如我们最常用的InternalResourceViewResolver,它负责从指定的位置找到JSP文件用于创建View模型。所以在配置这些视图的时候非常简单,只需要配上prefix和suffix即可。

面向多视图

  国际化视图解析器是面向多视图的视图解析器中的代表,他需要额外配置国际化配置文件。

 

  如果在SpringMVC容器中配置了多个视图解析器会怎么样呢?他会按照某种顺序遍历所有的ViewResolver知道有一个合适的视图解析器能够返回一个View对象,这种模型被称为ViewResolver查找序列。如果不指定的话该序列是配置顺序,作为Spring家族中的一员,SpringMVC中的ViewResolver同样实现了Order接口,允许我们指定ViewResolver在Chain上的顺序,如下所示。

  但下面这种配置是有一定危险的,因为面向单一视图的视图解析器在解析失败的时候不会返回null然后用下一个视图解析器,返回null会造成404错误。所以在配置了多个视图解析器的情况下应该吧面向多视图的视图解析的order在前面。

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
        <property name="cache" value="false"/>
        <property name="order" value="1"/>

    </bean>

 

转载于:https://www.cnblogs.com/AshOfTime/p/10656510.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30858241/article/details/99972862

智能推荐

HCIP第六天_睇���咩的博客-程序员秘密

1.划分levelISIS的骨干区域为逻辑骨干---所有连续的L2和L1-2路由器的集合构成了ISIS的逻辑骨干区域一个区域内至少有一台设备属于逻辑骨干,否则该区域将无法访问其他区域;判断出R7为L2所以R8和R6为L12,R2 R3 R4 R6 R7 R8为主干路,也可以将R8为L1。2.配置R6基本配置[r6]interface g0/0/1[r6-GigabitEthernet0/0/1]ip address 46.1.1.2 24[r6]interface g0/0/...

(二)黑马程序员——面向对象_qq_33609664的博客-程序员秘密

------- android培训、java培训、期待与您交流! ----------

关于PyCharm中遇到exit code -1073740791 (0xC0000409)的问题及其解决方法_python 0xc0000409_Aiden_S.K.的博客-程序员秘密

版权声明:本文为博主原创文章,如需转载请贴上原博文链接:前言1:首先要感谢一下文末参考文献的贡献者们!给了我许多启发,遇到问题不可怕,可怕的是没有方法可以尝试。前言2:这个问题是在做公司的一个项目的前期调研试验的时候遇到的,简化后的大致意思是将含有曲线的图片转换成数据,然后使用神经网络对这些数据进行拟合,有感兴趣的可以看这篇博文(待更新)。前期都很顺利,图片显示等都正常,但当我将神经网络模块加入的时候出现了问题,报“exit code -1073740791 (0xC0000409)”的进程终止命令

iOS小技能:设备ID除了使用_idfa、_idfv 还可使用其他替代方案(使用Keychain 存储UUID)_ios 设备id_iOS逆向的博客-程序员秘密

设备信息的获取:除了使用_idfa、_idfv, 还使用sysctl 获取cpu、macaddress信息,以及使用sysctlbyname获取设备型号等信息、 使用CNCopyCurrentNetworkInfo获取ssid、bssid关于设备ID的心得: 通过逆向研究,发现大部分的app设备ID以及OpenUDID都是基于CFUUIDCreate、CFUUIDCreateString 进行创建........................

Nmap的活跃主机探测常见方法_weixin_30879833的博客-程序员秘密

最近由于工作需求,开始对Nmap进行一点研究,主要是Nmap对于主机活跃性的探测,也就是存活主机检测的领域。Nmap主机探测方法一:同网段优先使用arp探测:  当启动Namp主机活跃扫描时候,Nmap会对目标地址参数进行检查,如果与自身IP地址匹配到同一个子网内,Nmap会对该类目标采用arp协议进行探测。即使命令参数规定的是其他探测手段,也会先使用arp进行探测。这种方式效率高,...

3.SpringCloud学习(三)——Spring Cloud Hystrix 服务降级_Soulballad的博客-程序员秘密

1.简介1.1 概述In a distributed environment, inevitably some of the many service dependencies will fail. Hystrix is a library that helps you control the interactions between these distributed services by adding latency tolerance and fault tolerance logic. Hy

随便推点

物联网,嵌入式和AI的结合_物联网与嵌入式_「已注销」的博客-程序员秘密

物联网操作系统:FreeRTOS 技术生态“万有理论” 未来企业基本形态:万有理论在云端用人工智能处理物联...

IOS--内存管理 (retain, assign,copy, strong,weak)_weixin_33714884的博客-程序员秘密

2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...

一个非常强大和友好的nginx基于lua-nginx-module(openresty)_lua nginx module_爱码士人员的博客-程序员秘密

一个非常强大和友好的nginx基于lua-nginx-module(openresty),提供WAF,控制面板和仪表板VeryNginxVeryNginx是一个非常强大和友好的nginx。中文文档注意在v0.2之后,控制面板的输入uri被移动到 /verynginx/index.html描述VeryNginx基于lua_nginx_module(openrestry)。它实现了高级防火墙(waf),访问统计和一些其他功能。它增强了Nginx的功能,并提供友好的Web界面。Ve

struts2_day02_05-获取表单数据(使用ActionContext获取)_huanglianggu的博客-程序员秘密

项目结构:/struts2_day02/WebContent/form1.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>Insert title here username: password: addres

go-stat-reporter(3):使用datatables 做通用数据显示_fly-iot的博客-程序员秘密

项目地址: https://github.com/golangpkg/go-stat-reporter/ 相关分类文章: https://blog.csdn.net/freewebsys/article/category/7778259 本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/80919855博主...

利用流光扫描的SQL弱密码 入侵远程机子_清水迎朝阳的博客-程序员秘密

<br /> <br /> <br /> <br /> <br />注意: 本文之目的仅在研究信息安全的攻防策略  严禁用于非法目的 :》<br /> <br /> <br /> <br />下面一部分 转载在网络 在此谢谢作者<br /> <br /><br />流光的SQL探测,顺便说说ipc$补遗和其它的探测手段。<br /><br />一、目的和任务:<br /><br />1、用流光的SQL探测获得一台NT主机的管理权限。<br />2、学习SQL探测的相关知识。<br />3、IPC$补遗和其它

推荐文章

热门文章

相关标签