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

目录
  • SpringBoot的@DeleteMapping注解的方法不被调用
    • 1、前端代码
    • 2、服务端代码
    • 3、Spring boot源码(重点)
    • 4、配置文件
  • SpringBoot开发中常用的注解
    • 参数说明如下
  • 总结

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映射

总结

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

(0)

相关推荐

  • Spring Boot Rest常用框架注解详情简介

    目录 开始Spring Boot Rest的先决条件 在Spring Initializer创建Spring Boot项目 Spring Boot注解 @RestController @RequestMapping @RequestParam @PathVariable @RequestBody REST方法的特定注释 @GetMapping @PostMapping和@PutMapping @DeleteMapping 前言: 让我们了解一下Spring Boot Rest框架注释.它是如此简

  • SpringBoot常用注解详细整理

    目录 前言 一.@SpringBootApplication 二.@Bean 三.@Autowired 四.Component家族 五.@RestController 六.@Scope 七.@Configuration 八.@RequsetMapping 八.@GetMapping 九.@Configuration 十.@PostMapping 十一.@PutMapping 十二.@DeleteMapping 十三.@ParhVariable和@RequestParam 十四.@RequestB

  • Springboot使用put、delete请求报错405的处理

    目录 Springboot使用put.delete请求报错 Springboot错误提示405状态 一.错误提示405状态截图 二.405状态的原因 三.解决方法 Springboot使用put.delete请求报错 SpringBoot给我们自动配置好了HiddenHttpMethodFilter,但是最近发现好像用不了,我用的是SpringBoot版本是2.2.2,默认配置被改成了false,也就是关闭了自动配置,不知道sprongboot什么鬼,坑!!! There was an unex

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

    目录 SpringBoot的@DeleteMapping注解的方法不被调用 1.前端代码 2.服务端代码 3.Spring boot源码(重点) 4.配置文件 SpringBoot开发中常用的注解 参数说明如下 总结 SpringBoot的@DeleteMapping注解的方法不被调用 1.前端代码 <!--1 给当前按钮绑定样式deleteBtn 2 给按钮绑定自定义属性--> <button th:attr="del_uri=@{/emp/}+${emp.id}"

  • 解决springboot利用ConfigurationProperties注解配置数据源无法读取配置信息问题

    @ConfigurationProperties是springboot新加入的注解,主要用于配置文件中的指定键值对映射到一个java实体类上.那么它是怎么发挥作用的呢?下面我们将揭开@ConfigurationProperties的魔法. ConfigurationPropertiesBindingPostProcessor这个bean后置处理器,就是来处理bean属性的绑定的,这个bean后置处理器后文将称之为properties后置处理器.你需要知道以下几件事: ioc容器context的e

  • 解决springboot中@DynamicUpdate注解无效的问题

    springboot 中 @DynamicUpdate 注解无效解决方案 遇到的问题 项目中使用 jpa,以前没用过,所以踩坑在所难免. 在使用过程中,要更新一条记录的某个字段,更新成功以后,发现整条记录只剩下我更新的那个字段,其他的全部为空了. 瞬间明白,这种更新是全覆盖,针对每个字段 update,实体类没赋值的字段,也直接将空值 set 过去了. 寻求解决方案 正在庆幸这么容易就解决,突然发现并没有这么简单. 群众的力量是无穷大的,我立刻就明白这个注解为什么无效,原来是搞错了它的用途. 一

  • SpringBoot中@Transiactional注解没有效果的解决

    目录 SpringBoot @Transiactional注解没有效果 背景 问题 解决 SpringBoot 使用Transaction注解遇到的坑 一.场景 二.Spring中使用的使用方式 三.使用中遇到的问题 1.使用Transaction注解时抛出异常但是事务不起作用,异常时事务没有进行回滚? 2.刚插入的数据,无法马上查询到? 总结: SpringBoot @Transiactional注解没有效果 背景 数据库为mysql 问题 使用SpringBoot操作数据库插入两条数据,se

  • SpringBoot Shiro 权限注解不起作用的解决方法

    最近在学习springboot结合shiro做权限管理时碰到一个问题. 问题如下: 我在userRealm中的doGetAuthorizationInfo方法中给用户添加了权限,然后在Controller中写了下面的代码.其中URL为/listArticle的方法必须要有article:over权限才能通过.我在doGetAuthorizationInfo方法中给该用户添加的权限并没有article:over,但是当前端向该URL发送请求时,@RequiresPermissions注解不起作用,

  • 解决SpringBoot中使用@Async注解失效的问题

    错误示例,同一个类中使用异步方法: package com.xqnode.learning.controller; import com.fasterxml.jackson.core.JsonProcessingException; import org.springframework.scheduling.annotation.Async; import org.springframework.web.bind.annotation.GetMapping; import org.springf

  • 解决SpringBoot中使用@Transactional注解遇到的问题

    目录 使用@Transactional注解遇到的问题 1.不建议在接口上添加@Transactional注解 2.@Transactional注解 3.默认情况下 4.数据库引擎需要支持事务管理 5.同一类中methodA()方法 springboot 注解transactional失效 1.在方法中捕获了异常 2.spring中事务是代理模式 3.A方法如果有事务注解 4.本类中A方法调用 使用@Transactional注解遇到的问题 1.不建议在接口上添加@Transactional注解

  • SpringBoot使用Async注解失效原因分析及解决(spring异步回调)

    目录 Async注解失效原因分析及解决(spring异步回调) Spring中@Async 有时候在使用的过程中@Async注解会失效 解决方式一 解决方式二 springboot @Async 失效可能原因 Async注解失效原因分析及解决(spring异步回调) Spring中@Async 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3.x之后,就已

  • spring-boot通过@Scheduled配置定时任务及定时任务@Scheduled注解的方法

    串行的定时任务 @Component public class ScheduledTimer { private Logger logger = Logger.getLogger(this.getClass()); /** * 定时任务,1分钟执行1次,更新潜在客户超时客户共享状态 */ @Scheduled(cron="0 0/1 8-20 * * ?") public void executeUpdateCuTask() { Thread current = Thread.curr

  • 基于注解实现 SpringBoot 接口防刷的方法

    该示例项目通过自定义注解,实现接口访问次数控制,从而实现接口防刷功能,项目结构如下: 一.编写注解类 AccessLimit package cn.mygweb.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Targ

随机推荐