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

Spring整合Thymeleaf时如何在POST控制器中获取视图producto.nombre参数

解决方案

你的问题由两个错误导致,对应修正方案如下:

1. 前端表单补全提交字段

表单提交仅会携带<input>、<select>、<textarea>这类表单元素的参数,你当前只把producto.nombre渲染到了普通<div>做展示,没有放到表单元素中,所以后端收不到该参数。
需要在表单内新增nombre对应的隐藏输入框,修正后的表单代码参考:

<form th:action="@{/productos/{id}(id=${producto.id})}" method="post">
  <input type="hidden" name="pref" th:value="${pref}" id="preferencia"/>
  <!-- 新增nombre隐藏字段,值和producto.nombre绑定,随表单提交 -->
  <input type="hidden" name="nombre" th:value="${producto.nombre}"/>
  <div class="nombreproducto" th:text=${producto.nombre}></div>
  <div class="precioproducto" th:text="'$'+${producto.precio}"></div>
  <div class="detallesproducto"  th:text=${producto.detalles}></div>
  <div class="cantidadproducto">Cantidad:<div class="cantidad" th:text=${producto.cantidad}></div></div>
  <div class="comprar"><button type="submit" id="submit" class="btn btn-warning" onclick="checkout.open()">Comprar</button></div>
</form>

提示1:另外注意你原有代码的form标签嵌套存在语法问题,上述修正代码已经调整了标签闭合顺序,避免渲染异常。
提示2:如果后续需要提交precio、cantidad等其他producto字段,按同样规则新增对应name属性匹配的隐藏输入框即可。

2. 修正POST控制器路径映射

你表单的提交地址是/productos/{id},但当前POST控制器绑定的路径是/id,路径不匹配会导致请求根本无法进入该控制器方法。修正后的控制器代码参考:

// 修正路径为和表单action匹配的/productos/{id}
@RequestMapping(value="/productos/{id}", method=RequestMethod.POST)
// 新增@PathVariable注解获取路径中的id参数,@RequestParam对应表单提交的nombre参数
public String productoPorNombrePOST(@PathVariable Integer id, @RequestParam String nombre, RedirectAttributes redirAttrs, Model model) {
  String productfromhtml = nombre;
  // 你的业务逻辑代码
  return "producto";
}

可选优化

如果需要提交的producto字段较多,可以直接用实体类接收参数,不需要逐个写@RequestParam:

@RequestMapping(value="/productos/{id}", method=RequestMethod.POST)
public String productoPorNombrePOST(@PathVariable Integer id, @ModelAttribute Producto producto, RedirectAttributes redirAttrs, Model model) {
  String productfromhtml = producto.getNombre();
  // 直接从producto对象取所有对应字段即可
  return "producto";
}

只需要保证表单中隐藏输入框的name属性和Producto实体类的属性名完全匹配即可自动封装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:48:04