簡體   English   中英

如何更新值<c:set>在 a 中使用 EL 標記<c:foreach>標簽</c:foreach></c:set>

[英]How to update value in <c:set> tag using EL inside a <c:foreach> tag

我有一個list ,其中包含一些對象。 這些對象有一個hours字段。

<c:foreach>中,我正在迭代列表並獲取對象。

現在我想在一個totalHours變量中總結所有迭代對象的hours字段。

我的代碼:

<c:forEach var="attendance" items="${list }" varStatus="rowCounter1">
  <tr>
    <td><c:out value="${rowCounter1.count}"></c:out></td>
    <td><c:out value="${attendance.date }"></c:out></td>
    <td><c:out value="${attendance.inTime }"></c:out></td>
    <td><c:out value="${attendance.outTime }"></c:out></td>
    <td><c:out value="${attendance.interval }"></c:out></td>

    <c:set var="totalHours" value="${attendance.Hours += attendance.Hours }"
           target="${attendance}"</c:set>                                       
  </tr>
</c:forEach>

我正在嘗試這個,但它給了我以下錯誤:

javax.el.ELException: Failed to parse the expression [${attendance.Hours += attendance.Hours }

在 Java 中,它看起來像這樣:

// before the loop:
int totalHours = 0;
for (Attendance attendance : list) {
    totalHours = totalHours + attendance.getHours();
}

所以在 JSTL 中做同樣的事情:

<c:set var="totalHours" value="${0}"/>
<c:forEach var="attendance" items="${list }" varStatus="rowCounter1">
    ...
    <c:set var="totalHours" value="${totalHours + attendance.hours}"/>
</c:forEach>

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

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