您的位置:首页 > 理论基础 > 计算机网络

关于SpringMVC的rest的一个问题: HTTP Status 405 - JSPs only permit GET POST or HEAD.。

2018-03-26 21:25 766 查看
在学习springMVC时 , rest这块PUT和 DELETE 请求时遇到一个问题
Handler当中的方法顺利执行 , 但是 返回页面时却是405 , permit GET POST or HEAD.。
意思就是 它只认识GET , POST , HEAD. 不认识PUT 和 DELETE
网上查了一下 , 说是tomcat7以上会出现这个问题,

解决方法有两种

第一种

在Controller当中添加 @ResponseBody 或者 @RestController注解:



但是种最后执行的结果 , 是在页面当中输出方法 return 的内容



第二种

该方法可以解决响应页面的问题 , 但是却多一些限制
方法也很简单 , 既然不能识别PUT 和 DELETE  , 那就将请求方式改为可以识别的 , @RequestMapping(value = "/testMethod/{id}" , method = RequestMethod.PUT)
public String testMethodPUT(@PathVariable(value = "id") Integer id) {
System.out.println("testMethodPUT: PUT: "+ id);
return "redirect:/success.jsp";
}
直接重定向到指定jsp页面
也可以重定向到一个 请求处理的方法 , 在由这个方法转发到页面即可 @RequestMapping(value = "/testMethod/{id}" , method = RequestMethod.DELETE)
public String testMethodDELETE(@PathVariable(value = "id") Integer id) {
System.out.println("testMethod: DELETE: "+ id);
return "redirect:/springmvc/success"; //重定向到一个没有指定 method的 Handler方法

@RequestMapping(value = "/success")
public String successGenecal() {
return "success"; //由该方法 转发到success.jsp页面
至此可以解决 HTTP Status 405 - JSPs only permit GET POST or HEAD
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: