我有一张表格并通过Thymeleaf将数据发布到控制器中:
<form action="lia.html" th:action="@{/lia}" th:object="${myRequest}" method="post">
在我的html页面的另一个地方,如果用户单击某个特定按钮,我想修改该对象并将其发送到同一个控制器。
我已经初始化了那个对象。按钮不是任何形式的一部分。如何将该对象发送到Thymeleaf的控制器中。
PS:我知道我可以通过Javascript发送或将这些按钮放入表单中,但我想学习Thymeleaf方式。
答案 0 :(得分:1)
我认为你正在寻找的唯一类似的方法是使用绑定Spring EL表达式。
感谢Spring MVC中的高级表单字段绑定功能, 我们可以使用复杂的Spring EL表达式绑定动态表单字段 我们的形式支持bean。这将允许我们创建新的Row对象 在我们的SeedStarter bean中,并将这些行的字段添加到我们的表单中 用户请求。
看看下一个链接,其中有一个很好的例子:
http://www.thymeleaf.org/doc/tutorials/2.1/thymeleafspring.html#dynamic-fields
按钮
<button type="submit" name="removeRow"
th:value="${rowStat.index}" th:text="#{seedstarter.row.remove}">Remove row</button>
请求映射
@RequestMapping(value="/seedstartermng", params={"removeRow"})
public String removeRow(
final SeedStarter seedStarter, final BindingResult bindingResult,
final HttpServletRequest req) {
final Integer rowId = Integer.valueOf(req.getParameter("removeRow"));
seedStarter.getRows().remove(rowId.intValue());
return "seedstartermng";
}