簡體   English   中英

jstl遍歷對象中的列表

[英]jstl loop through a list in an object

我正在構建一個Spring MVC Web應用程序,我有一個名為NodeRel的對象,其定義如下:

public class NodeRel {
    private String fromNodeId;
    private String toNodeId;
    private String fromNodeName;
    private String toNodeName;
    private List<QuotaValueOnTime> fromNodeSend;
    private List<QuotaValueOnTime> toNodeSend;

    //getters and setters omitted 
}

在服務器端代碼中,我獲得了NodeRels的列表,並將其綁定到模型。 在jsp頁面中,我想先遍歷List,然后在其中,我要遍歷List。 我的jsp代碼:

<div class="table-responsive">
<table class="table table-striped table-bordered table-hover">
    <thead>
        <tr>
            <th class="center">Count</th>
            <th>relation</th>
            <th colspan='25'>Detail</th>
        </tr>
    </thead>

    <tbody>
        <c:forEach var="nodeRel" items="${nodeRelInfo}" varStatus="stc">
            <tr>
                <td rowspan="3">${stc.count}</td>
                <td rowspan="3">${nodeRel.fromNodeName} --> ${nodeRel.toNodeName}</td>
                <td>\</td>
                <c:forEach var="x" begin="0" end="23" step="1"> 
                            <td>${x}</td>
                </c:forEach>
            </tr>
            <tr>
                <td>Send_A</td>
                <c:forEach var="node" items="${nodeRelInfo.fromNodeSend}"> 
                            <td>${node.sumval}</td>
                </c:forEach>

            </tr>
            <tr>
                <td>Send_B</td>
                <c:forEach var="x" begin="0" end="23" step="1"> 
                            <td>${x}</td>
                </c:forEach>
            </tr>
        </c:forEach>
    </tbody>
</table>
</div>

我的代碼不起作用,並且出現了java.lang.NumberFormatException:對於第二個循環附近的輸入字符串:“ fromNodeSend”:

<c:forEach var="node" items="${nodeRelInfo.fromNodeSend}"> 
    <td>${node.sumval}</td>
</c:forEach>

我的代碼有什么問題?

請注意,變量${nodeRelInfo}代表列表,變量${nodeRel}代表您處理的每個項目。

因此,您要在第二個循環中循環的項目是${nodeRelInfo.fromNodeSend} 更改變量循環的第二個名稱:

<c:forEach var="node" items="${nodeRel.fromNodeSend}"> 
    <td>${node.sumval}</td>
</c:forEach>

它與Java for-each循環的邏輯相同。

for (List nodeRel: nodeRelInfo) {
    // bla blaa
    for (String node: nodeRel.fromNodeSend()) {
        System.out.println(node);
    }
}

像這樣更改第二個循環,因為父循環中的變量名是nodeRel而不是nodeRelInfo

<c:forEach var="node" items="${nodeRel.fromNodeSend}"> 
    <td>${node.sumval}</td>
</c:forEach>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM