重新发布SpringMVC 3 405 - Request method 'POST' not supported
HTML
<form action="testPost" method="post">
<input type="submit" value="Submit" />
</form>
动作(用SpringMVC)
@RequestMapping(value="testPost", method = RequestMethod.POST)
public String testPost(){
return "shared/post";
}
在添加sitemesh3过滤器之前,这个'post'方法执行的提交操作完美,
但是一旦添加了sitemesh3过滤器,如果将HTML和操作都更改为GET,仍然可以正常工作,但是如果我更改为POST,则会调用该操作,但返回'405 - 请求方法'POST'不支持'
所以我认为sitemesh3在对客户端的动作响应时改变了一些东西。我查看了sitemesh3的源代码,但没有找到任何有价值的东西。
任何人都可以帮忙吗?提前谢谢。答案 0 :(得分:0)
我不确定这是否与您的设置相关,但我遇到了同样的错误(405-post不支持)
最初我认为这与sitemesh有关。但是,当我在我的案例中更多地研究它时,那是因为我使用的是<mvc:resources /
&gt;提供到装饰器的静态映射。
<mvc:resources />
不接受装饰器文件的发布请求。
我更改了装饰器文件的映射,以确保它是静态的并响应POST和GET请求。更多细节Spring: not accept POST request under mvc:resources? how to fix that
我使用的代码是
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/DecTest/**" value="myResourceHandler" />
</map>
</property>
<property name="order" value="100000" />
</bean>
<bean id="myResourceHandler" name="myResourceHandler"
class="org.springframework.web.servlet.resource.ResourceHttpRequestHandler">
<property name="locations" value="/DecTest/" />
<property name="supportedMethods">
<list>
<value>GET</value>
<value>HEAD</value>
<value>POST</value>
</list>
</property>
<!-- cacheSeconds: maybe you should set it to zero because of the posts-->
</bean>