springmvc使用REST出现:Request method 'PUT' not supported问题

目录
  • 使用REST出现:Requestmethod'PUT'notsupported
    • 解决办法
    • 步骤如下
  • Requestmethod'PUT'/'POST'notsupported之可能的一个原因
    • 如下所示

使用REST出现:Request method 'PUT' not supported

在SpringMVC学习过程中,练习使用REST风格的进行简单的CRUD的DEMO的时候,在执行Edit操作后出现了如下图405的错误。在提交页面的action中的请求前加上${pageContext.request.contextPath }

这类错括 method(PUT,DELETE,POST)not supported,原因很有可能就是后台中的uri(即handler类中)与前端 的uri不一致导致的。

发现这种错误如何进行修改?

解决办法

将项目部署后,运行起来,键盘上按(F12)打开浏览器的开发者工具。当点击edit并且进行修改操作后提交页面,这个时候报错。

可以利用开发者工具查看此时的连接地址:

步骤如下

点开网络----à看下面图片①标注的位置(根据自己的情况)-----à再看②(可以看到,Request URL:http://localhost:8000/springmvc02/add3),记住它---->查看后端代码RequestMaping映射的URL,是否一致

找到method为PUT,同时value="/emp"的url,而我这里写的是"/add3”,路径不对当然就找不到页面了,所以报错了。

所以改为:

@RequestMapping(value="/add3",method=RequestMethod.PUT)即可。

@RequestMapping(value = "/emp",method= RequestMethod.PUT)
                   public String updateEmp(Employee employee) {
                            employeeDao.save(employee);                           
                            return "redirect:/emps";
                   }

总而言之,解决这类的办法就是看@RequestMapping(value="/url1",method=RequestMethod.method*)中的url与前端页面中地址是否一致的问题。

根本原因还是对SpringMVC机制的原理理解不够透彻,再去多理解理解,弄懂即可!!!

Request method 'PUT'/ 'POST' not supported之可能的一个原因

如下所示

我一直遇到下面这个错误,在网上查了很多原因,在服务器上测试也没问题,但在本地就一直报错。

没想到是因为我没有为项目设置application context,设置好就能正常访问了。。

Request method 'PUT'/ 'POST' not supported

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Spring MVC中异常处理的三种方式

    前言 在 SpringMVC, SpringBoot 处理 web 请求时, 若遇到错误或者异常,返回给用户一个良好的错误信息比 Whitelabel Error Page 好的多. SpringMVC 提供了三种异常处理方式, 良好的运用它们可以给用户提供可读的错误信息. 1. 实现 HandlerExceptionResolver public class AppHandlerExceptionResolver implements HandlerExceptionResolver { @O

  • 关于Spring MVC在Controller层中注入request的坑详解

    前言 记一次为了节省代码没有在方法体中声明HttpServletRequest,而用autowire直接注入所钻的坑 结论:给心急的人. 直接在Controller的成员变量上使用@Autowire声明HttpServletRequest,这是线程安全的! @Controller public class TestController{ @Autowire HttpServletRequest request; @RequestMapping("/") public void test

  • SpringMVC的REST风格的四种请求方式总结

    一. 在HTTP 协议里面,四个表示操作方式的动词:GET.POST.PUT.DELETE. 它们分别对应四种基本操作: 1.GET ====== 获 取资源 2.POST ======新建资源 3.PUT======= 更新资源 4.DELETE==== 删除资源 二.REST:即 Representational State Transfer.(资源)表现层状态转化.是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便, 所以正得到越来越多网站的采用. 我们可以通过re

  • springmvc使用REST出现:Request method 'PUT' not supported问题

    目录 使用REST出现:Requestmethod'PUT'notsupported 解决办法 步骤如下 Requestmethod'PUT'/'POST'notsupported之可能的一个原因 如下所示 使用REST出现:Request method 'PUT' not supported 在SpringMVC学习过程中,练习使用REST风格的进行简单的CRUD的DEMO的时候,在执行Edit操作后出现了如下图405的错误.在提交页面的action中的请求前加上${pageContext.r

  • 解决vue axios跨域 Request Method: OPTIONS问题(预检请求)

    我们在vue开发中用axios进行跨域请求时有时会遇到,同一个接口请求了两次,并且第一次都是options请求,然后才是post/get请求 如下图 options请求 get请求 为什么会出现这种原因呢? 这是因为CORS跨域分为 简单跨域请求和复杂跨域请求: 简单跨域不会发送options请求,复杂跨域会发送一个预检请求options. 1.简单跨域满足的条件 1.请求方式是以下三种之一: HEAD GET POST 2.HTTP的头信息不超出以下几种字段 Accept Accept-Lan

  • 基于SpringMVC @RequestMapping的参数和用法

    @RequestMapping的参数和用法 RequestMapping里面的注解包含的参数如图: RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. @RequestMapping 除了修饰方法, 还可来修饰类 : 类定义处:提供初步的请求映射信息.相对于 WEB 应用的根目录: 方法处:提供进一步的细分映射信息. 相对于类定义处的 URL. 若类定义处未标注 @RequestMapping,则方法处标

  • 详解SpringMVC常用注解功能及属性

    目录 1.@RequestMapping注解 1.1@RequestMapping注解的功能 1.2@RequestMapping注解的位置 1.3@RequestMapping注解的value属性 1.4@RequestMapping注解的method属性 1.5@RequestMapping注解的params属性(了解) 1.6@RequestMapping注解的headers属性(了解) 1.7SpringMVC支持路径中的占位符(@PathVariable)(重点) 2.SpringMV

  • SpringMVC @RequestMapping注解详解

    目录 一.@RequestMapping 1.@RequestMapping注解的功能 2.@RequestMapping注解的位置 二.@RequestMapping注解的属性 1.value属性(掌握) 2.method属性(掌握) 3.params属性(了解) 4.headers属性(了解) 5.SpringMVC支持ant风格的路径 6.SpringMVC支持路径中的占位符(重点) 三.@RequestMapping的派生类注解 测试form表单是否支持put或delete方式的请求 一

  • SpringMVC的注解@RequestMapping属性及使用

    目录 SpringMVC注解@RequestMapping 一.@RequestMapping 注解的位置 1. 作用在方法 2. 作用在类 二.@RequestMapping 注解的 value 属性 三.@RequestMapping 注解的 method 属性 @RequestMapping 结合请求方式的派生注解 四.@RequestMapping 注解的 params 属性 五.@RequestMapping 注解的 headers 属性 SpringMVC注解@RequestMapp

  • Spring MVC中@Controller和@RequestMapping注解使用

    目录 @Controller和@RequestMapping注解使用 RequestMapping注解类型 通过@RequestParam接收请求参数 SpringMVC应用@Autowired和@Service进行依赖注入 通过org.springframework.web.bind.annotation.ModelAttribute 拦截器的配置 @RequestMapping和Controller方法返回值 @RequestMapping Controller方法返回值 @Controll

  • springcloud feign调其他微服务时参数是对象的问题

    目录 @RequestBody GET请求多参数的URL 正确写法如下 POST请求包含多个参数 在使用feign调用其它服务时,发现获取的参数是null,当参数是对象是,是执行的Post请求,所以要在方法参数前加@RequestBody, @RequestBody 处理HttpEntity传递过来的数据,一般用来处理非Content-Type: application/x-www-form-urlencoded编码格式的数据. GET请求中,因为没有HttpEntity,所以@RequestB

  • spring cloud feign不支持@RequestBody+ RequestMethod.GET报错的解决方法

    1.问题梳理: 异常:org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported 很明显是最终feign执行http请求时把这个方法认定为POST,但feign client中又定义了RequestMethod.GET 或 @GetMapping,冲突导致报错 那么为什么feign会认为这个方法是post呢? 源码追踪: 1.我们从feignClient注解

  • Spring Cloud如何使用Feign构造多参数的请求

    本节我们来探讨如何使用Feign构造多参数的请求.笔者以GET以及POST方法的请求为例进行讲解,其他方法(例如DELETE.PUT等)的请求原理相通,读者可自行研究. GET请求多参数的URL 假设我们请求的URL包含多个参数,例如http://microservice-provider-user/get?id=1&username=张三 ,要如何构造呢? 我们知道,Spring Cloud为Feign添加了Spring MVC的注解支持,那么我们不妨按照Spring MVC的写法尝试一下:

随机推荐