SpringMvc笔记-对RESTFUL风格的配置

1.@RequestMapping注解可以使用如下参数:

    1,params:例如params={'username',"age!=100"}表示需要usernmame并且age 属性不能等于100

    2. headers:为请求头 确定他的请求头是啥的时候才能访问headers={"Accept-lanuage=us,ZN"}

2.@PathVariable("id")实现REST风格的一步,可以将目标方法的参数中

1     @GetMapping("/test/{id}")
2     public String test(@PathVariable("id") String id){
3         return null;
4     }

3.REST风格中的POST,GET,DELETE,PUT请求

GET和POST请求自带有这个功能

主要是DELETE和PUT请求

SpringMVC中在3.0后已经支持了Restful风格了。

具体一下几步:

1.配置web.xml中的拦截器

1     <!--用于对RESTful风格的拦截器 -->
2     <filter>
3         <filter-name>HiddenHttpMethodFilter</filter-name>
4         <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
5     </filter>
6     <filter-mapping>
7         <filter-name>HiddenHttpMethodFilter</filter-name>
8         <url-pattern>/*</url-pattern>
9     </filter-mapping>

2.编写对应的请求方式

 

 1 package cn.lonecloud.controller;
 2 
 3 import org.springframework.stereotype.Controller;
 4 import org.springframework.web.bind.annotation.PathVariable;
 5 import org.springframework.web.bind.annotation.RequestMapping;
 6 import org.springframework.web.bind.annotation.RequestMethod;
 7 /**
 8  * 对RestFul的支持
 9  * @Title: RestController.java
10  * @Package cn.lonecloud.controller
11  * @Description: 
12  * @author lonecloud
13  * @date 2017年4月9日 上午10:47:47
14  */
15 @RequestMapping("/rest")
16 @Controller
17 public class RestController{
18 
19     @RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE)
20     public String RestDelete(@PathVariable("id")String id){
21         System.out.println("delete"+id);
22         return "list";
23     }
24     @RequestMapping(value="/testRest/{id}",method=RequestMethod.GET)
25     public String RestGET(@PathVariable("id")String id){
26         System.out.println("get"+id);
27         return "list";
28     }
29     @RequestMapping(value="/testRest/{id}",method=RequestMethod.PUT)
30     public String RestPUT(@PathVariable("id")String id){
31         System.out.println("put"+id);
32         return "list";
33     }
34     @RequestMapping(value="/testRest/{id}",method=RequestMethod.POST)
35     public String RestPOST(@PathVariable("id")String id){
36         System.out.println("post"+id);
37         return "list";
38     }
39     @RequestMapping(value="/testRest/",method=RequestMethod.GET)
40     public String RestPOST(){
41         return "list";
42     }
43 }

 

 3.对链接进行POST请求在POST请求中携带隐藏域参数name="_method" value="DELETE/PUT"请求的input框即可

 

完整代码:

 

  

posted @ 2017-04-08 23:33  lonecloud  阅读(2234)  评论(0编辑  收藏  举报
我的博客即将同步至 OSCHINA 社区,这是我的 OSCHINA ID:lonecloud,邀请大家一同入驻:https://www.oschina.net/sharing-plan/apply