解决SpringBoot的@DeleteMapping注解的方法不被调用问题
作者:zavier的乌托邦
SpringBoot的@DeleteMapping注解的方法不被调用
1、前端代码
<!--1 给当前按钮绑定样式deleteBtn 2 给按钮绑定自定义属性--> <button th:attr="del_uri=@{/emp/}+${emp.id}" class="btn btn-sm btn-danger deleteBtn" type="submit">删除</button> <!--创建一个表单--> <form id="delFormBtn" method="post"> <input type="hidden" name="_method" value="delete"> </form> <script> // 按钮点击时调用该方法 $(".deleteBtn").click(function(){ //绑定属性提交表单 $("#delFormBtn").attr("action",$(this).attr("del_uri")).submit(); return false; }); </script>
2、服务端代码
@DeleteMapping("/emp/{id}") public String delete(@PathVariable("id") Integer id){ employeeDao.delete(id); return "redirect:/emps"; }
3、Spring boot源码(重点)
3.1、matchIfMissing的用法:
(1)如果配置文件中没有配置 spring.mvc.hiddenmethod.filter.enabled 的属性,并且matchIfMissing = false,那么不符合加载 hiddenHttpMethodFilter()的条件,反之matchIfMissing = true,符合加载hiddenHttpMethodFilter()的条件。
(2)如果配置文件中配置了 spring.mvc.hiddenmethod.filter.enabled = false,不管matchIfMissing = false 或者 matchIfMissing = true,都不符合加载hiddenHttpMethodFilter()的条件。
(3)如果配置文件中配置了 spring.mvc.hiddenmethod.filter.enabled = true ,不管matchIfMissing = false 或者 matchIfMissing = true,都符合加载hiddenHttpMethodFilter()的条件。
4、配置文件
在application.yml或者application.properties中加入spring.mvc.hiddenmethod.filter.enabled = true即可。
SpringBoot开发中常用的注解
@ApiOperation和@ApiParam为添加的API相关注解
参数说明如下
@ApiOperation
(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”);其他参数可参考源码;
@ApiParam
(required = “是否必须参数”, name = “参数名称”, value = “参数具体描述”)
@Autowired
- 这个注解的作用是将其他的类,接口引入,类似于之前的类的初始化等,用这个注解,类中或接口的方法就可以直接调用了。
@RequestMapping
- 当前台界面调用Controller处理数据时候告诉控制器怎么操作
- 作用:URL映射。
@GetMapping
- @RequestMapping(method = RequestMethod.GET)的简写
- 作用:对应查询,表明是一个查询URL映射
@PostMapping
- @RequestMapping(method = RequestMethod.POST)的简写
- 作用:对应增加,表明是一个增加URL映射
@PutMapping
- @RequestMapping(method = RequestMethod.PUT)的简写
- 作用:对应更新,表明是一个更新URL映射
@DeleteMapping
- @RequestMapping(method = RequestMethod.DELETE)的简写
- 作用:对应删除,表明是一个删除URL映射
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。