zoukankan      html  css  js  c++  java
  • 如何让RESTful支持DEL和PUT

      RESTful风格里面,@ModelAttribute是一个语义复杂的对象,其中一个就是在所有的被@Controller修饰的方法之前执行;
      @RequestParam:是指url中“?”之后的queryString的内容;
     public ResourcePool get(@RequestParam(required=false) String userName) 
      相应XXX/form?userName=YYYY
      另外,对于@ModelAttrbute而言,只是支持RequestParam,不支持PathVariable,因为没有RequestMapping做定义,根本无法知道模式。
     
      与之相对应的@PathVariable,则是指RESTful命名模式中模式通配的部分
    1 RequestMapping("/user/{username}")
    2 public ResourcePool get(@PathVariable("username") String userName)  

      另外,RESTful这个美好的事物,PUT/DELETE语义竟然不被浏览器支持。但是spring说我有办法,在web中添加如下的内容

    1    <filter>
    2         <filter-name>httpMethodFilter</filter-name>
    3         <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    4     </filter>
    5     <filter-mapping>
    6         <filter-name>httpMethodFilter</filter-name>
    7         <url-pattern>/*</url-pattern>
    8     </filter-mapping>

      完美解决了浏览器不支持PUT/DELETE的问题。这是因为浏览器虽然不支持,但是jsp将会把method=post自动生成为<input type="hidden", value="_method">,不过我是用的spring的标签form,自动生成的可能是spring自己处理的,否则需要自己来添加。

  • 相关阅读:
    python多线程爬取图片二
    python多线程爬取图片实例
    python3的类
    简单的python爬虫实例
    简单的python多线程实例
    webapi 下载Ftp文件并返回流到浏览器完成文件下载
    .net 配置Swagger
    IDEA 发布Api
    MySql 查询表结构信息
    解决js的 Math取正弦值 余弦值不准确的问题
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/8047755.html
Copyright © 2011-2022 走看看