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框即可
完整代码: