springMVC3.2 与 springMVC4.3配置mediaTypes的不一样之处html
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版本上已经进行了移出操做。web
<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>
<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的相关方法
spring