SpringMVC PathVariable和post、get、put、delete请求

1、PathVariable 可以映射URL中的占位符到目标方法的参数中。

2、Rest风格的URL

  以CRUD为例:

  新增:/order POST

  修改:/order/id PUT

  获取:/order/id GET

  删除:/order/id DELETE

3、如何发送PUT和DELETE请求?

  1.需要配置HiddenHttpMethodFilter

  2.需要发送POST请求: 

  <form action="springmvc/testRest/1" method="post">
  <input type="hidden" name="_method" value="PUT">
  <input type="submit" value="PUT">
  </form>
  <br/><br/>

  <form action="springmvc/testRest/1" method="post">
  <input type="hidden" name="_method" value="DELETE">
  <input type="submit" value="DELETE">
  </form>
  <br/><br/>

  3.需要发送POST请求时携带一个name="_method"的隐藏域,值为DELETE或PUT

   <input type="hidden" name="_method" value="PUT">

   <input type="hidden" name="_method" value="DELETE">

   4.在SpringMVC的目标方法中需要指定请求的方法,并使用@PathVariable注解获取参数值

  @RequestMapping(value="/testRest/{id}",method=RequestMethod.PUT)
  public String testRestPut(@PathVariable Integer id){
  System.out.println("PUT " + id);
  return SUCCESS;
  }

  @RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE)
  public String testRestDelete(@PathVariable("id") Integer id){
  System.out.println("Delete " + id);
  return SUCCESS;
  }

  @RequestMapping(value="testRest",method=RequestMethod.POST)
  public String testRest(){
  System.out.println("POST");
  return SUCCESS;
  }


  @RequestMapping(value="testRest/{id}",method=RequestMethod.GET)
  public String testRest(@PathVariable("id") Integer id){
  System.out.println("GET " + id);
  return SUCCESS;
  }

  

转载于:https://www.cnblogs.com/Allen-Zsj/p/8072731.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTTP 405 错误表示所请求的 HTTP 方法不允许对所请求的资源进行操作。通常,这是因为所请求的资源只支持另一种 HTTP 方法,或者请求的方法与资源的类型不匹配。 如果您在使用 Spring MVC 的时候遇到了 HTTP 405 错误,有可能是您的 Controller 方法中没有正确地配置 RequestMapping 注解。请确保您的 Controller 方法中的 RequestMapping 注解中的 method 属性与请求方法(GET、POST、PUT、DELETE 等)匹配。 例如,如果您的 Controller 方法只能处理 POST 请求,但是客户端使用了 GET 请求,则会出现 HTTP 405 错误。可以在 RequestMapping 注解中指定 method 属性来限制请求方法。例如: ``` @RequestMapping(value = "/example", method = RequestMethod.POST) public String examplePost() { // 处理 POST 请求 } @RequestMapping(value = "/example", method = RequestMethod.GET) public String exampleGet() { // 处理 GET 请求 } ``` 如果您的代码中已经正确配置了 RequestMapping 注解,但是仍然遇到 HTTP 405 错误,可以检查您的 DispatcherServlet 配置是否正确。请确保您的 DispatcherServlet 配置中包含对应的 URL 映射,例如: ``` <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/api/*</url-pattern> </servlet-mapping> ``` 这个例子中,所有以 /api 开头的请求都会被映射到 DispatcherServlet。如果您的请求路径不正确,可能会导致 HTTP 405 错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值