如何停止在 jsp 中显示重复项

How to stop showing duplicated items in jsp

我向 jsp 发送路线列表

request.setAttribute(ROUTES, routeService.getAll());

路线有Train->List<Wagon> 货车有类型(商务、标准等)和座位数。

我需要为每条路线显示:

Business: 1313,
Standart: 131...

我需要对所有类型的每辆旅行车的座位数求和,并在每条路线的 JSP 中显示。

如何通过jstl实现。

您应该在您的 servlet 中执行您的逻辑并将其发送到 jsp。您也可以在 jsp 中编写 java 代码,我建议您避免这样做。要解决您的问题,您需要在您的 servlet 中使用这样的代码:

Map<String, Int> trainMap = trainList.stream().collect(Collectors.groupingBy(Wagon::getType,
    Collectors.summingInt(Wagon::getCount)));
request.setAttribute("trainMap", trainMap);

然后在你的 jsp 中做这样的事情:

<c:forEach var="train" items="${trainMap}">
    <tr>
        <td>
        <c:out value="${train.key}" /> : <c:out value="${train.value}" />
        </td>
     </tr>
</c:forEach>