springMVC3.2 与 springMVC4.3配置mediaTypes的不同之处

来源:互联网 发布:全棉时代 知乎 编辑:程序博客网 时间:2024/06/05 00:55

替换springMVC版本为4.3以后运行项目提示错误

org.springframework.beans.NotWritablePropertyException: Invalid property 'mediaTypes' of bean class [org.springframework.web.servlet.view.ContentNegotiatingViewResolver]: Bean property 'mediaTypes' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter

错误原因

是spring3.2以上开始不推荐使用setMediaTypes等直接设置这些数据, 而是通过ContentNegotiationManager(ContentNegotiationManagerFactoryBean),所以采用map标签的方式直接转换会出现异常信息。
相关的方法在4.3版本上已经进行了移出操作。

3.2xml配置

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">        <property name="order" value="1" />        <property name="mediaTypes">            <map>                <entry key="html"  value="text/html" />                <entry key="xml"  value="application/html" />                <entry key="json" value="application/json" />            </map>        </property>        <property name="defaultViews">            <list>                <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">                </bean>            </list>        </property>        <property name="ignoreAcceptHeader" value="true" />    </bean> 

4.3xml配置

    <bean id="contentNegotiationManager"  class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">       <property name="favorParameter" value="true"/>       <property name="parameterName" value="format"/>       <property name="ignoreAcceptHeader" value="false"/>       <property name="mediaTypes">           <value>                json=application/json                xml=application/xml                html=text/html            </value>       </property>       <property name="defaultContentType" value="text/html"/>    </bean> 

ContentNegotiationManagerFactoryBean关于MediaType的相关方法
这里写图片描述

原创粉丝点击