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框即可
完整程式碼: