-
@RequestMapping(value = "/hello",method = RequestMethod.GET)
- rest风格支持(使用http请求资源动词来表示对资源的操作)
以前/getUser 获取用户 /deleteUser 删除用户 /editUser修改用户 /saveUser 保存拥护
rest风格/user GET-获取用户 DELETE-尚出用户 PUT-修改用户 POST-保存用户
核心:需要使用过滤器:HiddenHttpMethodFiler(springboot提供了)
用法:表单使用post提交请求,让偶添加一个隐藏域<imput type="hidden" name="_method" value="对应的请求方式"
springboot需要手动开启。在配置文件中开启如下:
spring: mvc: hiddenmethod: filter: enabled: true //表示开启rest风格
原理:
- 表单提交带隐藏域,提交了_method=“请求方式”(因为表单只能提交get,post)
- springboot的HiddenHttpMethodFiler对他进行拦截,获取_method的值:有以下请求方式:put,deletd ,patch
- 原生request(post),包装模式requestWrapper重写了getMethod方法,返回了_method的值
- 然后到前端控制器这边判断请求方法时就会调用重写的getMethod方法获取对应的_method的值,然后在根据requestMapping上的method = RequestMethod.GET来执行对应的controller方法
相关注解:以下这几个注解等于@RequestMapping+method =“请求方式”对应的属性
@GetMapping @PostMapping @DeleteMapping @PutMapping @PatchMapping
拓展: