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

Spring Boot+Thymeleaf表单提交时如何阻止页面刷新

实现方案

要实现表单提交无刷新,核心是通过异步请求替代原生表单的同步提交行为,修改如下:

前端调整

表单结构修正+添加异步提交逻辑

<!-- 表单部分:循环渲染复选框时删除固定id="myCheck",避免重复id导致DOM选择异常
<form class="myform myform-newaccount" id="myForm"
      th:action="@{/authorList?buttonValue=pluginlist}"
      th:object="${userModifyDto}" method="post">
    <input type="checkbox" name="applicationId" th:field="*{applicationIds}"
           th:value="${option.applicationId}" /> 
    <input type="submit" value="send" id="myid"/>
</form>

异步提交逻辑可选两种实现方式:

  • 方式1:jQuery实现(需确保项目已引入jQuery依赖)
// 监听表单提交事件
$("#myForm").submit(function(e) {
    // 阻止默认提交的页面刷新行为
    e.preventDefault();
    // 序列化表单所有数据,自动包含所有选中的复选框值
    let formData = $(this).serialize();
    // 发送异步POST请求
    $.post($(this).attr("action"), formData, function(res) {
        // 提交成功后的自定义逻辑,比如弹出提示、更新页面局部内容
        alert("提交成功");
    }).fail(function() {
        alert("提交失败,请重试");
    });
});
  • 方式2:原生JS实现(无需引入额外依赖)
document.getElementById("myForm").addEventListener('submit', function(e) {
    e.preventDefault();
    const formData = new FormData(this);
    fetch(this.action, {
        method: 'POST',
        body: formData
    }).then(response => response.json())
    .then(res => {
        console.log('提交成功', res);
        // 自定义成功逻辑
    }).catch(err => {
        console.error('提交失败', err);
        // 自定义失败逻辑
    });
});

后端接口调整

原接口需要将返回值从视图改为JSON响应,添加@ResponseBody注解即可:

@PostMapping("/authorList")
@ResponseBody
public Map<String, Object> submitAuthorList(UserModifyDto userModifyDto, @RequestParam String buttonValue) {
    // 保留原有业务逻辑,完成数据入库操作
    Map<String, Object> res = new HashMap<>();
    res.put("code", 200);
    res.put("msg", "操作成功");
    return res;
}

注意事项

  • 循环渲染复选框时可以根据业务给每个复选框设置唯一标识,不要复用重复id
  • Spring Boot默认支持application/x-www-form-urlencoded类型的请求参数,原有参数接收逻辑不需要调整
  • 提交成功后可以根据业务需要更新页面局部内容,无需刷新整个页面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:57:02