Java 如何将隐藏值从Mythymeleaf模板传递给控制器(Spring Boot)?
我正在运行一个springboot项目,并试图使用post方法传递一个id或对象,但我一直为用户返回null。我想让用户可用,以便在创建摘要页面时(单独的表单点击post方法),我从中获得的用户可以添加到摘要对象 我也相信有一种方法可以通过锚链接传递id 这是我的html:Java 如何将隐藏值从Mythymeleaf模板传递给控制器(Spring Boot)?,java,html,spring-boot,thymeleaf,Java,Html,Spring Boot,Thymeleaf,我正在运行一个springboot项目,并试图使用post方法传递一个id或对象,但我一直为用户返回null。我想让用户可用,以便在创建摘要页面时(单独的表单点击post方法),我从中获得的用户可以添加到摘要对象 我也相信有一种方法可以通过锚链接传递id 这是我的html: <div > <span th:text="${user.firstName}"></span> Summary Page <
<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>-->
任何帮助或建议都将不胜感激!
-谢谢首先,您的代码的核心问题是您试图在非Thymeleaf属性中使用Thymeleaf表达式,它将无法按预期工作。Thymeleaf将只查看以
th:
开头的属性(如果使用HTML5语法,则查看data th-
)
对于您的情况,我将使用th:object
和th:field
:
添加摘要
参考:。首先,您的代码的核心问题是,您试图在非Thymeleaf属性中使用Thymeleaf表达式,它将无法按预期工作。Thymeleaf将只查看以
th:
开头的属性(如果使用HTML5语法,则查看data th-
)
对于您的情况,我将使用th:object
和th:field
:
添加摘要
参考:。锚定将导致HTTP Get请求,相应的控制器方法将需要使用@RequestParam来指定用户id。如果这是您所要求的?…并且您的
value=“${userId}”
不应该是value=“${user.userId}”
-使用thymeleaf不太好,在这种情况下,它是传递给控制器的id,而不是用户。@TonyKennah谢谢,我也试过了,但没有得到任何回报。对于在链接中传递id,我想知道是否可以做一些类似于传递来自页面上已有对象(用户)的id的事情并将其发送到控制器。锚定将导致HTTP Get请求,相应的控制器方法将需要使用@RequestParam来指定用户id。如果这是您所要求的?…并且您的value=“${userId}”
不应该是value=“${user.userId}”
-使用thymeleaf不太好,在这种情况下,它是传递给控制器的id,而不是用户。@TonyKennah谢谢,我也试过了,但没有得到任何回报。对于在链接中传递id,我想知道我是否可以做一些事情,比如传递来自页面上已经存在的对象(用户)的id并将其发送给控制器。
@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;
}
}