所以基本上我在我的html页面中有这个表,它几乎可以正常工作
<div th:each="good : ${goodList}">
<form action="#" th:action="@{/zamow}"
th:object="${enterGoodAction}" method="post">
<tr>
<input type="hidden" path="id" value="${good.id}"/> //this input
<th><span th:text="${good.name}"/></th>
<th><span th:text="${good.amount}"/></th>
<th><span th:text="${good.price}" /></th>
<th><span th:text="${good.tax}" /></th>
<th><input type="number" min="1" th:field="*{amount}"/></th>
<th><input type="submit" value="Zamów" /></th>
</tr>
</form>
现在我要做的是创建这个隐藏的输入,它会将“good.id”数据传递给我的控制器,但无论我对他做什么,他总是为空。我该如何解决?我认为控制器运行良好所以问题在于我的输入。实际的输入可能看起来很愚蠢,但它是我的第10次尝试或者其他事情而且我很绝望; /
答案 0 :(得分:4)
访问表单中对象的内部属性所需的方法是
<input type="hidden" th:field="*{good.id}" />
我假设您有一个具有此结构的对象
enterGoodAction.good.id
如果不是这种情况,请找到从enterGoodAction对象到ID
的正确路径答案 1 :(得分:0)
您刚刚使用value
,这是一个无聊的属性,并按原样传递。请改用th:value
(或data-th-value
)。
答案 2 :(得分:0)
好的,我有一个奇怪的问题,我无法在百里香中设置<input type="hidden">
字段的“ value”属性。虽然对我有用,但可能会被认为是jQuery黑客
<input id = "good-id" type="hidden"/>
在胸腺叶一侧
<script th:inline="javascript">
$(document).ready(function() {
var goodIdValue = /*[[${good.id}]]*/'null';
$("#good-id").val(goodIdValue);
});
</script>
这将使用jQuery设置隐藏字段的类型value