今天项目里面出现了Request method 'POST' not supported。一个不容易发现的原因导致的,记录下来,以便后来的人别花太多的时间在这个上面。
我们项目使用的是 Spring MVC + Freemarker。
出现此问题的现象:
1. 页面上直接form提交,并且已经指明 method=“post”
<form action="xxxx" class="tableForm" method="post"></form>
2. Spring controller未指明method,所以get, post都支持
@RequestMapping(value = "/orderList")
3. 在我的controller执行完成之后返回到我指定的页面的时候出现的错误
出现此问题的原因:
简单的说就是我页面上include了其他的ftl文件,这个ftl文件又调用了一个controller,这个controller指明了使用get方式调用,所以报错了。也就是为什么我的方法是在返回ftl之后报错的。
总结:
Request method 'POST/GET' not supported 就是在页面上请求的method和controller中指定的method不一样出现的错误。简单的就是直接提交的controller上的问题。复杂的就是请求的页面中include了其他页面,其他页面又用include_page调用了不一样的method的controller出现的错误。