gpt4 book ai didi

java - 如何将隐藏值从 Thymeleaf 模板传递到 Controller (Spring Boot)?

转载 作者:太空宇宙 更新时间:2023-11-04 11:17:19 25 4
gpt4 key购买 nike

我正在运行一个 Spring Boot 项目,我尝试使用 post 方法传递 id 或对象,但我一直为用户返回 null。我想让用户可用,以便在创建摘要页面时(为单独的表单点击 post 方法),我从中获得的用户可以添加到摘要对象中。

我也相信可能有一种方法可以通过 anchor 链接传递 id?

这是我的 html:

        <div >
<span th:text="${user.firstName}"></span> Summary Page
<span th:text="${user.emailAddress}"></span>
<form id="add" th:action="@{/addSummary}" method="post">
<input id="userId" name="${user.userId}" type="hidden" value="${userId}"/>
<!-- <input id="userId" name="${user}" type="hidden" value="${user}"/> -->
<button type="submit" value="save">Add Summary</button>
</form>
</div>
<!-- another way to pass id? -->
<!--<a href="createSummary.html?user.id">AddSummary</a>-->

Controller :

    @RequestMapping(value ="/addSummary", method = RequestMethod.POST)
public ModelAndView addSummary(User user) {

try{
ModelAndView model = new ModelAndView("views/createSummary");
System.out.println("======POST Summary Method hit=====");
// model.addObject("summary", new Summary());
User nUser = userService.findById(user.getUserId());
model.addObject("user", nUser);
System.out.println("user: " + nUser.getUserId());
return model;
}catch(Exception ex){
System.out.println(ex.toString());
throw ex;
}
}

如有任何帮助或建议,我们将不胜感激!- 谢谢

最佳答案

首先,代码的核心问题是您尝试在非 Thymeleaf 属性中使用 Thymeleaf 表达式,它将无法按预期工作。 Thymeleaf 只会查看以 th: 开头的属性(如果使用 HTML5 语法,则为 data-th-)。

对于您的情况,我将使用 th:objectth:field:

<form id="add" th:action="@{/addSummary}" method="post" th:object="${user}">
<input id="userId" th:field="*{userId}" type="hidden"/>
<button type="submit" value="save">Add Summary</button>
</form>

引用:Creating a Form in the Thymeleaf + Spring tutorial .

关于java - 如何将隐藏值从 Thymeleaf 模板传递到 Controller (Spring Boot)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45313110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com