java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot的@DeleteMapping注解的方法不被调用

解决SpringBoot的@DeleteMapping注解的方法不被调用问题

作者:zavier的乌托邦

这篇文章主要介绍了解决SpringBoot的@DeleteMapping注解的方法不被调用问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

@GetMapping

@PostMapping

@PutMapping

@DeleteMapping

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文