spring - Thymeleaf 绑定表中的选定值
问题描述
我有一个表,其中包含从列表生成的多个元素,并且该列表中的每个表元素都有一个按钮。通过单击该按钮,有一个发布提交请求,该请求应该将该表数据元素中的值绑定到 @ModelAttribute弹簧靴中的对象。问题是我能够映射整个列表,但我只想绑定按下按钮的表格元素。
<div class="table-responsive">
<form th:action="@{/saveAd}" th:object="${object}" method="POST">
<table class="table table-sm table-hover">
<thead class="thead-dark">
<tr>
<th>Image</th>
<th>Title</th>
<!-- <th style="width: 16.66%">Link</th> -->
<th>Price</th>
<th>City</th>
</tr>
</thead>
<tbody id="myTable">
<th:block th:each="element, itemStat: *{lista}">
<tr
th:onclick="'javascript:rowClicked(\'' + *{lista[__${itemStat.index}__].url} + '\');'">
<input type="hidden" readonly="readonly"
th:name="?"
th:value="${element.getUrl()}" />
<td>
<input type="hidden" readonly="readonly" th:name="img" th:value="${element.getImg()}" />
<img th:src="*{lista[__${itemStat.index}__].img}" class="size" name="img" />
</td>
<td>
<input type="hidden" readonly="readonly" th:name="?" th:value="${element.getTitle()}" />
<span th:text="*{lista[__${itemStat.index}__].title}"></span>
</td>
<td>
<input type="hidden" readonly="readonly" th:name="?" th:value="${element.getPrice()}" />
<span th:text="*{lista[__${itemStat.index}__].price}"></span>
</td>
<td>
<input type="hidden" readonly="readonly" th:name="?" th:value="${element.getCity()}" />
<span th:text="*{lista[__${itemStat.index}__].city}"></span>
</td>
<td><input class="btn btn-danger" type="submit"
value="Save"></td>
</tr>
</th:block>
</tbody>
</table>
</form>
</div>
控制器:
@RequestMapping(path = "/saveAd", method = RequestMethod.POST)
public String saveAd(@ModelAttribute("Value") ListCreationAutovitDto listCreationAutovitDto) {
return "home";
}
我对每个 td 都有一个隐藏的输入类型,它应该映射值,但我尝试以不同的方式命名它,但我无法让它工作。有没有办法只绑定按下按钮的值?
解决方案
想法1:让每个都td
包含一个form
指向你的控制器方法。input
然后使用表单中的隐藏字段绑定要传递给模型的值。然后,每个按钮都会对其所在的表单进行提交。
想法 2:如果您将 json 映射到应用程序中的 java 对象,则可以在 JavaScript 中构造 json 请求主体,以仅包含该请求所需的内容
推荐阅读
- odoo - Bus.bus 在工人大于 0 后不可用
- rpmbuild - 打包 AppImage 时如何跳过精灵检查?
- r - 从另一个数据帧中减去带有条件的数据帧中的值
- typescript - TypeScript 不使用 Pick 强制返回类型
- reactjs - 在 redux 操作中应用多个过滤器
- swift - 如何在 SwiftUI 中使用 Font Awesome 作为自定义字体?
- graph - 为什么我们在数学中至少有三个图的定义?
- excel - 无法通过 VBA 在 Internet Explorer 中填充文本框
- xml - 使用 PL SQL 提取基于属性的 XML
- laravel - 如何在 Laravel 网站而不是 500 页中显示错误