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

Thymeleaf如何实现输入ID后跳转至对应@GetMapping路径页面

解决方案

你遇到的核心问题是原生HTML表单的GET提交默认会把参数作为查询参数拼接在?后,无法直接匹配你写的路径变量格式的@GetMapping接口,可选择以下两种方案实现:

方案1:前端JS拦截表单提交(无后端改动)

直接修改你的HTML表单,添加少量JS拦截默认提交行为,手动拼接路径跳转即可,代码如下:

<form onsubmit="handleSubmit(event)">
  Look up by id: <input type="number" id="prodId" required>
  <button type="submit">查询</button>
</form>

<script>
function handleSubmit(e) {
  // 阻止表单默认提交
  e.preventDefault();
  const id = document.getElementById('prodId').value.trim();
  if (id) {
    location.href = `/products/${id}`;
  }
}
</script>

方案2:后端新增重定向兼容接口(无前端JS)

如果不想写前端JS,可以在后端新增一个兼容表单默认提交逻辑的接口,自动重定向到你现有的路径变量接口,代码如下:

后端Java代码

// 新增兼容接口,适配表单GET提交的查询参数格式
@GetMapping("/products")
public String redirectById(@RequestParam Long id) {
    return "redirect:/products/" + id;
}

对应HTML表单代码

<form action="/products" method="get">
  Look up by id: <input type="number" name="id" required>
  <button type="submit">查询</button>
</form>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:24:03