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来定 ...
随机推荐
- Transposed Convolution 反卷积
Transposed convolutions也称作fractionally strided convolutions(本人比较喜欢这个称呼,比较直观),Upconvolution,deconvolu ...
- [BZOJ1299]巧克力棒(博弈论,线性基)
[BZOJ1299]巧克力棒 Description TBL和X用巧克力棒玩游戏.每次一人可以从盒子里取出若干条巧克力棒,或是将一根取出的巧克力棒吃掉正整数长度.TBL先手两人轮流,无法操作的人输. ...
- 查看mysql数据库容量大小
第一种情况:查询所有数据库的总大小,方法如下: mysql> use information_schema; mysql> select concat(round(sum(DATA_LE ...
- MongoDB实现增删查方法
1.添加信息 public void addInfo(Infomation infomation) { try{ // TODO Auto-generated method stub //连接Mong ...
- 集合综合练习<一>
1208421001,关羽,数学,93 1208421001,关羽,英语,88 1208421002,张飞,语文,82 1208421002,张飞,数学,83 1208421002,张飞,英语,89 ...
- 【LuoguP4433】[COCI2009-2010#1] ALADIN(含类欧几里得算法推导)
题目链接 题意简述 区间赋值模意义下等差数列,询问区间和 \(N\leq 10^9,Q\leq 10^5\) Sol 每次操作就是把操作区间\([L,R]\)中的数赋值成: \[(X-L+1)*A\ ...
- Hibernate基本原理理解
什么是Hibernate? Hibernate,翻译过来是冬眠的意思,正好现在已经进入秋季,世间万物开始准备冬眠了.其实对于对象来说就是持久化. 扫盲------------------------- ...
- 【NOIP2016提高A组五校联考2】tree
题目 给一棵n 个结点的有根树,结点由1 到n 标号,根结点的标号为1.每个结点上有一个物品,第i 个结点上的物品价值为vi. 你需要从所有结点中选出若干个结点,使得对于任意一个被选中的结点,其到根的 ...
- python语言特性简要记载
1.python是解释型语言,而c,c++等是编译型语言. 2.python是动态类型语言,这意味着你不需要在声明变量时指定类型. 3.Python是面向对象语言,所有允许定义类并且可以继承和组合.P ...
- vue 设置 input 为不可以编辑
我用最笨的方法,先实现功能先,用两个input,一个可以编辑,一个不可以编辑,失去焦点后隐藏可以点击的那个,点"编辑"时,显示可以编辑的那个input <div class= ...