td内的百里香叶迭代和值的特殊选择

时间:2019-05-09 08:39:46

标签: javascript html spring html5 thymeleaf

我在春季靴子项目中使用百里香叶。我有一个项目列表,我想将它们放在桌子上。

此列表必须分为4列。这些项目的ID和ID引用了特定的列。

所以我有一张桌子,在正文中我想在一个“ tr”中设置不同的“ tds”。在每个“ td”中,我要遍历列表,找到具有正确ID的项目,并在输入中设置特定的数量。

该列表来自db,所以我只有具有值的项目,因此,如果某些东西将为零,则该项目将不存在。

当我没有物品时想放零时,问题就来了。

我只想用百里香做饭,而不想添加一个javascript函数来以后设置值。

现在写我正在使用以下代码:

                <tbody>
                    <tr>
                        <td th:each="extraWork: ${ExtraWorkList}" class="BRtd" th:if="${extraWork.extraWorkCategory.id==1}"><input type="number" class="bReal" th:name="test2" th:value="${extraWork.qty}"></td>    
                        <td th:each="extraWork: ${ExtraWorkList}" class="BRtd" th:if="${extraWork.extraWorkCategory.id==2}"><input type="number" class="bReal" th:name="test3" th:value="${extraWork.qty}"></td>    
                        <td th:each="extraWork: ${ExtraWorkList}" class="BRtd" th:if="${extraWork.extraWorkCategory.id==3}"><input type="number" class="bReal" th:name="test4" th:value="${extraWork.qty}"></td>    
                        <td th:each="extraWork: ${ExtraWorkList}" class="BRtd" th:if="${extraWork.extraWorkCategory.id==4}"><input type="number" class="bReal" th:name="test5" th:value="${extraWork.qty}"></td>    
                    </tr>
                </tbody>

但是,如果不存在具有特定ID的项目,则不会创建输入。

2 个答案:

答案 0 :(得分:0)

嗨,改变你的方法,

   <table th:if="${ExtraWorkList.length > 0}">

                .................

                <tbody>
                    <tr th:each="${index: #numbers.sequence(0, ExtraWorkList.length, 4)}">
                        <td class="BRtd"><input type="number" class="bReal" th:name="test2" th:value="${ExtraWorkList[index].qty}"></td>    
                        <td class="BRtd" th:if="${ExtraWorkList[index + 1] != null}"><input type="number" class="bReal" th:name="test3" th:value="${ExtraWorkList[index + 1].qty}"></td>    
                        <td class="BRtd" th:if="${ExtraWorkList[index + 2] != null}"><input type="number" class="bReal" th:name="test4" th:value="${ExtraWorkList[index + 2].qty}"></td>    
                        <td class="BRtd" th:if="${ExtraWorkList[index + 3] != null}"><input type="number" class="bReal" th:name="test5" th:value="${ExtraWorkList[index + 3].qty}"></td>    
                    </tr>
                </tbody>

会做。

答案 1 :(得分:0)

您可以使用collection selection完成此操作,然后检查是否为空对象。这应该为您工作:

<tbody>
    <tr>
        <td th:with="extraWork=${ExtraWorkList.^[extraWorkCategory.id==1]}" class="BRtd"><input type="number" class="bReal" th:name="test2" th:value="${extraWork == null ? 0 : extraWork.qty}" /></td>    
        <td th:with="extraWork=${ExtraWorkList.^[extraWorkCategory.id==2]}" class="BRtd"><input type="number" class="bReal" th:name="test3" th:value="${extraWork == null ? 0 : extraWork.qty}" /></td>    
        <td th:with="extraWork=${ExtraWorkList.^[extraWorkCategory.id==3]}" class="BRtd"><input type="number" class="bReal" th:name="test4" th:value="${extraWork == null ? 0 : extraWork.qty}" /></td>    
        <td th:with="extraWork=${ExtraWorkList.^[extraWorkCategory.id==4]}" class="BRtd"><input type="number" class="bReal" th:name="test5" th:value="${extraWork == null ? 0 : extraWork.qty}" /></td>    
    </tr>
</tbody>

如果愿意,您可以进一步简化此操作(尽管现在变得有点复杂了)。像这样:

<tbody>
    <tr>
        <td th:each="i: ${#numbers.sequence(1,4)}" th:with="extraWork=${ExtraWorkList.^[extraWorkCategory.id==__${i}__]}" class="BRtd"><input type="number" class="bReal" th:name="|test${i+1}|" th:value="${extraWork == null ? 0 : extraWork.qty}" /></td>
    </tr>
</tbody>