替换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">
                <entry key="html"  value="text/html" />
                <entry key="xml"  value="application/html" />
                <entry key="json" value="application/json" />
            </map>
        </property>
        <property name="defaultViews">
                <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的相关方法
这里写图片描述

###替换springMVC版本为4.3以后运行项目提示错误org.springframework.beans.NotWritablePropertyException: Invalid property 'mediaTypes' of bean class [org.springframework.web.servlet.view.ContentNegotiatingViewResolver]: 1、java.lang.NoSuchMethodError: org. spring framework.aop.scope.ScopedProxyUtils.isScopedTarget(Ljava/lang/String;)Z 这个问题是因为,我的项目里有两个aop的j 因为 spring 官方发布了 spring framework的更新,此次更新修复了一个RFD(反射型文件下载)安全漏洞,,漏洞编号为CVE-2020-5421。该漏洞可以通过一个jsessionId路径参数绕过RFD(反射型文件下载)保护。 项目原本使用: spring - 3.2 .4.RELEASE 需要升级版本至: spring - 4.3 .29.RELEASE 升级完 spring 会发现在 配置 文件里面, ContentNegotiatingViewResolver这个视图解析器的配... css一个重要的特性怎样指定文档在不同的媒体之中呈现。在屏幕,纸上,盲文设备上,等等。 确定的css样式只是为了确定的呈现方式。然而,在不同的媒体类型xss可能分享属性。但是这些属性需要指定不同的值,例如在纸上和屏幕都有font-size属性,但是在纸上字体就要大一些。所以css需要应用于特定的 media types 。 Specifying media -dependent style sheets 有两个方式来指定依赖的媒体类型 用@ media
一、自己写的类和 配置 文件进行绑定 1. 自己写的类,需要和 配置 文件中 配置 的内容进行绑定(也就是说把 配置 文件中 配置 的内容绑定到自己写的类的属性中去),可以使用如下两个注解实现 @Component @ConfigurationProperties(prefix = "mycar") * 只有在容器中的组件,才会拥有 Spring Boot提供的强大功能 @Component @ConfigurationProperties(prefix = "mycar") public class C
```xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name> Spring MVC Application</display-name> <!-- 配置 Spring MVC 的DispatcherServlet --> <servlet> <servlet-name> springmvc -dispatcher</servlet-name> <servlet-class> org. spring framework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/ springmvc -servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- 映射DispatcherServlet的URL --> <servlet-mapping> <servlet-name> springmvc -dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> 在这个示例中,我们使用了`org. spring framework.web.servlet.DispatcherServlet`作为 Spring MVC 的核心前端控制器,将它 配置 在了web.xml中。我们还指定了 Spring 配置 文件` springmvc -servlet.xml`的位置,并将它作为初始化参数传递给了DispatcherServlet。最后,我们将DispatcherServlet映射到了根URL`/`,即所有的请求都将通过它来处理。