我在html文件中获得了“explorer”对象并可以对其进行分析:
<body>
<form th:action="@{/parsing}" method="post">
<div class="w3-container">
<table class="w3-table-all w3-card-4">
<tr>
<th>Id</th>
<th>Query</th>
<th></th>
</tr>
<tr>
<td th:text="${explorer.getId()}"></td>
<td th:text="${explorer.getQuery()}"></td>
<td>
<input class="w3-button w3-blue w3-right" type="submit" value="Enter"/>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
现在我想用post方法发送它,但是当我提交时,我在“结果”中得到null。
从提交操作获取查询的方法:
@PostMapping("/parsing")
public ModelAndView parsing(
@ModelAttribute Explorer explorer
){
System.out.println("explorerId = " + explorer.getId());
System.out.println("explorerId = " + explorer.getQuery());
return new ModelAndView("result");
}
(它不会抛出任何异常,但在控制台中仅打印空数据)
如何在这种情况下发送任何对象的post-method?
你很亲密您的表单缺少命令对象属性。
我建议将th:object="${explorer}"
添加到您的表单标签中。
在GET
方法中,仔细检查函数以从控制器创建资源管理器对象,然后在POST
操作可以成功提交对象之前,在表单的请求属性中添加对象以命令对象。
这个Thymeleaf docs有更多的答案,比我在这个帖子中可以结合。