springmvc 03 HiddenHttpMethodFilter(rest模擬操作)

示例:

/order/1 HTTP GET:得到id=1的order
/order/1 HTTP DELETE:刪除id=1的order
/order/1 HTTP PUT:更新id=1的order
/order/ HTTP POST:新增order

HiddenHttpMethodFilter:
瀏覽器form表單只支持GET,POST請求,而DELETE,PUT等method并不支持,Spring3.0添加了一個過濾器,可以把POST請求轉為DELETE,PUT請求使得支持GET,POST,PUT,DELETE請求;

步驟:
  1. web.xml中添加HiddenHttpMethodFilter
<filter>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
 
    <filter-mapping>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
  1. 前端表單添加隱藏域
    <form action="springmvc/testRest/1" method="post">
        <input type="hidden" name="_method" value="DELETE">
        <button type="submit">testRest-DELETE</button>
    </form><br>
    
    <form action="springmvc/testRest/2" method="post">
        <input type="hidden" name="_method" value="PUT">
        <button type="submit">testRest-PUT</button>
    </form><br>
    
    <form action="springmvc/testRest/3" method="post">
        <button type="submit">testRest-POST</button>
    </form><br>
    
    <a href="springmvc/testRest/4">testRest-GET</a>
public class Rest {
    private String SUCCESS = "success";
    
    @RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE)
    public String testRest_delete(@PathVariable("id") Integer id){
        System.out.println("刪除成功:"+id);
        return SUCCESS;
    }
    
    @RequestMapping(value="/testRest/{id}",method=RequestMethod.PUT)
    public String testRest_put(@PathVariable("id") Integer id){
        System.out.println("更新成功:"+id);
        return SUCCESS;
    }
    
    @RequestMapping(value="/testRest/{id}",method=RequestMethod.POST)
    public String testRest_post(@PathVariable("id") Integer id){
        System.out.println("添加成功:"+id);
        return SUCCESS;
    }
    
    @RequestMapping(value="/testRest/{id}",method=RequestMethod.GET)
    public String testRest_get(@PathVariable("id") Integer id){
        System.out.println("獲取成功:"+id);
        return SUCCESS;
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容