如何从html文件向控制器发送对象或数据?

问题描述 投票:1回答:1

我在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?

java html spring thymeleaf
1个回答
1
投票

你很亲密您的表单缺少命令对象属性。

我建议将th:object="${explorer}"添加到您的表单标签中。

GET方法中,仔细检查函数以从控制器创建资源管理器对象,然后在POST操作可以成功提交对象之前,在表单的请求属性中添加对象以命令对象。

这个Thymeleaf docs有更多的答案,比我在这个帖子中可以结合。

© www.soinside.com 2019 - 2024. All rights reserved.