spring-mvc 3.* 多视图解析配置实例 ContentNegotiatingViewResolver
一、起因
从spring 3.1.0升级到spring 3.2.0时,配置文件servlet.xml中出错。
错误信息:
- java.lang.String cannot be cast to org.springframework.http.MediaType
错误原因:是spring3.2开始不推荐使用setMediaTypes等直接设置这些数据, 而是通过ContentNegotiationManager(ContentNegotiationManagerFactoryBean),所以采用map标签的方式直接转换会出现异常信息。
二、ContentNegotiatingViewResolver 解释
三、配置实例
1. spring 3.1.0
- <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
- <property name="ignoreAcceptHeader" value="true"/>
- <property name="defaultContentType" value="text/html"/>
- <property name="mediaTypes">
- <map>
- <entry key="json" value="application/json" />
- <entry key="xml" value="application/xml" />
- </map>
- </property>
- <property name="viewResolvers">
- <list>
- <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
- <property name="prefix" value="/WEB-INF/pages/"/>
- <property name="suffix" value=".jsp"></property>
- </bean>
- </list>
- </property>
- <property name="defaultViews">
- <list>
- <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
- <bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
- <property name="marshaller">
- <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
- </property>
- </bean>
- </list>
- </property>
- </bean>
2. spring 3.1.0/3.2.0
- <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
- <property name="ignoreAcceptHeader" value="true"/>
- <property name="defaultContentType" value="text/html"/>
- <property name="mediaTypes">
- <value>
- json=application/json,
- xml=application/xml
- </value>
- </property>
- <property name="viewResolvers">
- <list>
- <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
- <property name="prefix" value="/WEB-INF/pages/"/>
- <property name="suffix" value=".jsp"></property>
- </bean>
- </list>
- </property>
- <property name="defaultViews">
- <list>
- <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
- <bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
- <property name="marshaller">
- <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
- </property>
- </bean>
- </list>
- </property>
- </bean>
3. spring 3.2.0
- <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
- <property name="ignoreAcceptHeader" value="true"/>
- <property name="defaultContentType" value="text/html"/>
- <property name="contentNegotiationManager">
- <bean class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
- <property name="ignoreAcceptHeader" value="true"/>
- <property name="defaultContentType" value="text/html"/>
- <property name="mediaTypes">
- <map>
- <entry key="json" value="application/json" />
- <entry key="xml" value="application/xml" />
- </map>
- </property>
- </bean>
- </property>
- <property name="viewResolvers">
- <list>
- <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
- <property name="prefix" value="/WEB-INF/pages/"/>
- <property name="suffix" value=".jsp"></property>
- </bean>
- </list>
- </property>
- <property name="defaultViews">
- <list>
- <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
- <bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
- <property name="marshaller">
- <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
- </property>
- </bean>
- </list>
- </property>
- </bean>
4. spring 3.2.x (推荐)
- <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
- <property name="ignoreAcceptHeader" value="true"/>
- <property name="defaultContentType" value="text/html"/>
- <property name="contentNegotiationManager">
- <bean class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
- <property name="ignoreAcceptHeader" value="true"/>
- <property name="defaultContentType" value="text/html"/>
- <property name="mediaTypes">
- <props>
- <prop key="json">application/json</prop>
- <prop key="xml">application/xml</prop>
- </props>
- </property>
- </bean>
- </property>
- <property name="viewResolvers">
- <list>
- <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
- <property name="prefix" value="/WEB-INF/pages/"/>
- <property name="suffix" value=".jsp"></property>
- </bean>
- </list>
- </property>
- <property name="defaultViews">
- <list>
- <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
- <bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
- <property name="marshaller">
- <bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
- </property>
- </bean>
- </list>
- </property>
- </bean>
spring-mvc 3.* 多视图解析配置实例 ContentNegotiatingViewResolver的更多相关文章
- spring mvc:内部资源视图解析器2(注解实现)@Controller/@RequestMapping
spring mvc:内部资源视图解析器2(注解实现) @Controller/@RequestMapping 访问地址: http://localhost:8080/guga2/hello/goo ...
- spring mvc:内部资源视图解析器(注解实现)@Controller/@RequestMapping
spring mvc:内部资源视图解析器(注解实现)@Controller/@RequestMapping 项目访问地址: http://localhost:8080/guga2/hello/prin ...
- Spring MVC资源绑定视图解析器
ResourceBundleViewResolver使用属性文件中定义的视图bean来解析视图名称. 以下示例显示如何使用Spring Web MVC框架中的ResourceBundleViewRes ...
- spring mvc: 资源绑定视图解析器(不推荐)
spring mvc: 资源绑定视图解析器(不推荐) 不适合单控制器多方法访问,有知道的兄弟能否告知. 访问地址: http://localhost:8080/guga2/hello/index 项目 ...
- Spring MVC的多视图解析器配置及与Freemarker的集成
一.从freemarker谈起 Freemarker使用模板技术进行视图的渲染.自从看了Struts标签.Freemarker.JSTL的性能对比后,我毅然决定放弃Struts标签了!效率太差…… S ...
- Spring MVC内部资源视图解析器
InternalResourceViewResolver用于将提供的URI解析为实际URI.下面的示例演示如何在Spring Web MVC框架中使用SpringResultViewResolver. ...
- Spring MVC开发环境的搭建和实例
一.安装jdk 二.安装tomcat 三.安装maven 新增环境变量MAVEN-HOME,并在path变量中添加bin路径 四.安装IntelliJ IDEA 五.创建maven web项目选择jd ...
- 转载 Spring、Spring MVC、MyBatis整合文件配置详解
Spring.Spring MVC.MyBatis整合文件配置详解 使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了.先总结一下SSM整合的文件配置.其实具体的用法最好还是看官方文档. ...
- Spring MVC 数据模型与视图
从控制器获取数据后,会装载数据到数据模型和视图中,然后将视图名称转发到视图解析器中,通过解析器解析后得到最终视图,最后将数据模型渲染到视图中,展示最终的结果给用户. 用ModelAndView来定 ...
随机推荐
- linux之crontab定时器
一.安装crontab yum -y install vixie-cron yum -y install crontabs 说明:vixie-cron 软件包是 cron 的主程序:crontabs ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(11)|Structs结构体]
[易学易懂系列|rustlang语言|零基础|快速入门|(11)] 有意思的基础知识 Structs 我们今天来看看数据结构:structs. 简单来说,structs,就是用来封装相关数据的一种数据 ...
- 前端每日实战:136# 视频演示如何用 D3 和 GSAP 创作一个横条 loader
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/pOZKWJ 可交互视频 此视频是可 ...
- 在vue-cli中使用px2rem,配合lib-flexible使用
原文地址 附上github源码 看这里 1.下载lib-flexible npm安装 npm i lib-flexible --save 2.引入lib-flexible 在main.js中引入li ...
- eclipse安装hibernate tools插件
第一步:在eclipse菜单中选择Help>Install New Software,弹出安装插件的窗口,如图: 在Work with:后面输入http://download.jboss.org ...
- electron监听系统托盘,electron是否最小化到系统托盘
在项目中需要判断窗口是否最小化在系统托盘上,任务栏那已经关闭,查了一晚上的api,始终找不到可以调用的方法,最后绞尽脑汁想到了一个办法,那就是在点右上角的关闭按钮时,加个全局变量,用来标识已经最小到系 ...
- 【shell】文本按行逆序
1.最简单的方法是使用tac [root ~]$ seq |tac 2.使用tr和awk. tr把换行符替换成自定义的分隔符,awk分解替换后的字符串,并逆序输出 [root ~]$ seq | tr ...
- SQL 行转列(列的值不规则的数目)
--创建一个临时表用来存储数据 create table #tmp_SNValue_Table (FieldName nvarchar(20), [Value] nvarchar(max)) inse ...
- Android使用init.rc触发脚本实现隐藏内置应用
[实现逻辑] 通过在property_service.c中设置标志位,在设置中实现接口改变标志位, 使用init.rc中声明的服务来侦听标志位的变化,显式启动声明的服务,执行对应的脚本,把应用后缀从a ...
- Httpwatch抓包
一.下载Httpwatch 二.抓包 1.启动Httpwatch 打开浏览器-选择工具-Httpwatch professional(仅适用于IE和火狐40及以下浏览器) 2.开始抓包 点击“Reco ...