我正在使用Java / Spring / Thymeleaf制作网络应用程序,似乎无法解决这个问题!
所以,这是我的百万美元模板代码:
<form th:action="@{/holiday/create}" th:object="${holiday}" method="post">
<select name="user_scroll">
<option th:each="user : ${allUsers}" th:value="${user.id}"
th:text="${user.email}" th:field="${holiday.user_id}" />
</select>
<button type="submit">
Create
</button>
</form>
我在这里已经阅读了相关问题,但仍然感到难过。 我确实读过你不能直接绑定一个对象,这就是我试图绑定到假日对象的user_id属性的原因。我确实怀疑假期对象超出了范围,但事实并非如此。也许我正在错误地访问user_id属性?
当我点击提交并按照调试通过我的控制器时,user_id只是通过null发送。 我希望有足够的信息 - 让我知道我是否需要提供更多信息。 谢谢!
答案 0 :(得分:1)
Frankie,尝试将 th:field 属性添加到选择对象,而不是将其放在选项中。像这样:
<select name="user_scroll" th:field="*{user_id}">
请注意SPel语法。以星号而不是 $ 开头,并说 user_id 而不是 holiday.user_id 。您可以通过这种方式直接访问该字段,因为您已使用
将其定义为表单定义中的所选对象th:object="${holiday}"
这也会将所选值绑定到后备对象的user_id属性,并解决问题。