Spring 4.3.3 - 不再支持ParameterizableViewController POST方法

时间:2016-10-13 17:26:52

标签: java spring spring-mvc

升级到Spring 4.3.3.RELEASE后我收到错误:

  

不支持请求方法'POST'

我的应用程序是一个基本模板,主视图通过

呈现
<mvc:view-controller path="/" view-name="home.view"/>

它在Spring 4.2.8上运行良好。

有任何解决问题的提示吗?

2 个答案:

答案 0 :(得分:0)

我们遇到了同样的问题。事实证明,在某些时候,ParameterizableViewController被更改为仅支持GET和HEAD请求。

我们通过用以下内容替换定义来解决这个问题:

<bean id="homeController" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
    <property name="supportedMethods" value="GET,POST,PUT,DELETE" />
    <property name="viewName" value="home.view" />
</bean>

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <map>
            <entry key="/" value-ref="homeController"/>
        </map>
    </property>
</bean>

基本上,这允许您使用您希望的任何支持的HTTP方法创建ParameterizableViewController。第二个bean创建映射,以便路径“/”解析为定义的控制器。

答案 1 :(得分:0)

ParameterizableViewController默认支持的默认方法是GET,HEAD,我们使用以下代码片段对其进行检查。

ParameterizableViewController pvc=new ParameterizableViewController();
            String[] str=pvc.getSupportedMethods();
            for(String x:str) {
                System.out.println(x);
            }

为了添加POST或任何HTTP方法,我们需要在我们的bean标记中添加此XML标记。

<bean id="testUrl"
        class="org.springframework.web.servlet.mvc.ParameterizableViewController">
        <property name="supportedMethods" value="GET,POST,PUT,DELETE" />
        <property name="viewName" value="success" />
</bean>