java - 如何从控制器中的 th:value (thymeleaf) 中检索数据?
问题描述
我需要在 Spring MVC 控制器中检索来自视图中 th:value 字段的内容。使用 RequestParam 尝试了下面的代码,但没有成功。
表格代码:
<form action="form1" method="post">
<input type="text" th:value="${personId}"/>
<input type="submit" name="btnSubmit" value="Submit">
</form>
Spring MVC 控制器
@RequestMapping(value="/form1", params = "btnSubmit", method = RequestMethod.POST)
public String formMethod (@RequestParam("personId") int personId) {
return "";
}
注意:我知道这也可以通过 th:field 替换 th:value、在表单标签中添加 th:object 并在控制器中使用 @ModelAttribute 来实现。但这需要创建一个完整的对象并将表单与对象紧密结合。不想那样做。想要一些更简单的东西,只需要一个字段,让表单绑定到另一个对象。所以,想知道当它是一个 th:value 时是否可以检索该数据(或者其他可以与单个字段一起使用的东西)。
解决方案
您不需要使用th:value
将数据返回给控制器。您需要th:object
在标签中配置form
:
<form action="form1" method="post" th:object="${person}">
然后您将其更改th:value
为name = "personId"
:
<input type="text" name="personId" />
在控制器中,您需要更改参数方法:
@RequestMapping(value="/form1", params = "btnSubmit", method = RequestMethod.POST)
public String formMethod (@Valid Person person, Model Model) {
return "";
}
Obs.: 如果你的 html 页面中有更多的提交按钮,你可以使用params = "btnSubmit=Submit"
.
了解更多: https ://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html
推荐阅读
- php - 如何在where条件下给出复选框列的单个值
- python-3.x - 如何从 Python 字典创建 Protobuf 结构?
- mysql - 如何在值列表上使用索引?
- php - 为什么 preg_match 将 + 替换为“”?
- visual-studio-code - 我可以有两个侧板,一左一右吗?
- c# - 游戏对象超出屏幕边缘
- python - 如何修复熊猫中的“未找到级别”错误?
- c# - Streamwriter set true stil 覆盖 csv 行
- apache - 将 nginx conf 转换为 .htaccess 文件
- laravel - 如何将 gulpfile.js 文件内容迁移到 webpack-mix.js 文件