You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用HTML调用Spring Controller的DeleteMapping接口删除员工?

实现HTML触发Spring DeleteMapping删除员工的方法

首先你需要修正控制器的方法,不能用private修饰,Spring MVC无法调用私有方法,必须改成public,同时最好返回响应结果(比如跳转页面或JSON),方便前端感知操作状态:

@DeleteMapping("/{id}")
// 假设控制器类上有@RequestMapping("/employees"),则完整请求路径为/employees/{id}
public String deleteEmployee(@PathVariable Integer id) {
    repository.deleteById(id);
    return "redirect:/employees"; // 删除后跳转到员工列表页,可根据需求调整
}

接下来提供两种前端实现方案:

方式一:HTML表单配合隐藏域(兼容无JS场景)

浏览器原生表单仅支持GET、POST请求,要发送DELETE请求需借助Spring的HiddenHttpMethodFilter(Spring Boot默认已启用,Spring MVC需手动配置),通过隐藏域指定请求方法:

<div>
    <label for="empId">员工ID:</label>
    <input type="number" id="empId" required>
    <button onclick="submitDelete()">删除</button>
</div>

<form id="deleteForm" method="post" style="display: none;">
    <!-- 隐藏域声明请求方法为DELETE -->
    <input type="hidden" name="_method" value="DELETE">
</form>

<script>
function submitDelete() {
    const empId = document.getElementById('empId').value;
    const form = document.getElementById('deleteForm');
    // 动态拼接请求路径,替换为你的实际接口前缀
    form.action = `/employees/${empId}`;
    form.submit();
}
</script>

方式二:JavaScript直接发送DELETE请求(更灵活)

用Fetch API直接发送DELETE请求,无需依赖表单隐藏域,实现更简洁:

<div>
    <label for="empId">员工ID:</label>
    <input type="number" id="empId" required>
    <button onclick="deleteEmployee()">删除</button>
</div>

<script>
async function deleteEmployee() {
    const empId = document.getElementById('empId').value;
    try {
        const response = await fetch(`/employees/${empId}`, {
            method: 'DELETE'
        });
        if (response.ok) {
            alert('删除成功');
            // 刷新页面或跳转到员工列表页
            window.location.href = '/employees';
        } else {
            alert('删除失败,请检查ID是否存在');
        }
    } catch (err) {
        console.error('请求错误:', err);
        alert('网络异常,请稍后重试');
    }
}
</script>

注意事项

  • 确保控制器类的@RequestMapping前缀和前端请求路径匹配,比如控制器类标注@RequestMapping("/employees"),则方法的@DeleteMapping("/{id}")对应的完整路径是/employees/{id}。
  • 若使用Spring MVC框架,需手动配置HiddenHttpMethodFilter才能让方式一生效。

内容的提问来源于stack exchange,提问作者eliasRagel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 04:10:35