405 encountered an error when writing DELETE or PUT request with restful style interfaces
There Jsp the PUT request form:
<form action="springmvc/testRestFulPut/1" method="post">
<input type="hidden" value="put" name="_method">
<input type="submit" value="PUT Submit">
</form>
SpringMVC interface functions:
// 更新
@RequestMapping(value="/testRestFulPut/{id}",method=RequestMethod.PUT)
public String testRestFulPUT(@PathVariable("id") Integer id) {
System.out.println("test PUT : " + id);
return SUCCESS;
}
web.xml Configuration
<! - in order to let the browser form can be sent put or delete request ->
<filter>
<filter-name> HiddenHttpMethodFilter </ filter-name>
<filter-class> org.springframework.web.filter.HiddenHttpMethodFilter </ class-filter>
</ filter>
<filter-Mapping>
<filter-name> HiddenHttpMethodFilter </ filter-name>
<URL-pattern> / * </ URL-pattern>
</ filter-Mapping>
When accessing this interface in the browser will generate 405 errors, while the console output is normal:
Browser
Console
Solution:
1. Add @ResponseBody comment.
2. The request to be transferred to a Controller, then return jsp page.
3.tomcat change to 7.0 and the following version.
4. Add isErrorPage = "true"