用百里叶数据创建隐藏输入

时间:2017-01-24 22:36:41

标签: java html thymeleaf

所以基本上我在我的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次尝试或者其他事情而且我很绝望; /

3 个答案:

答案 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