повторение нескольких элементов в jstl

У меня есть это требование для одновременного повторения 3 списков в jstl. для итерации по одному списку мы используем

<c:forEach var = "mfgn" items = "${requestScope.mfgNumber}" varStatus = "status">
    do something;
</c:forEach>

Мне нужно сделать что-то вроде

<c:forEach var = "mfgn" var = "issue" items = "${requestScope.mfgNumber}" items = "${requestScope.something" varStatus = "status">
     mfgNumber;
</c:forEach>

возможно ли это или есть другой способ перебирать несколько списков одновременно.


person Venkat    schedule 27.01.2011    source источник


Ответы (1)


arrow_upward
8
arrow_downward

Если они имеют одинаковый размер, то есть два варианта, если предположить, что это List<Integer> и List<String>:

  1. Объедините их в один список с сущностями, которые, в свою очередь, представляют элементы друг друга в одном классе, например List<ManfacturerIssue>, где ManfacturerIssue — это класс javabean, который содержит свойства Integer number и String issue. Таким образом, вы можете сделать:

    <c:forEach items="${mfgIssues}" var="mfgIssue">
        ${mfgIssue.number}, ${mfgIssue.issue}
    </c:forEach>
    
  2. Вместо этого выполняйте итерацию по индексу, однако это уродливо и неприемлемо, поскольку (заполните):

    <c:forEach begin="0" end="${fn:length(mfgNumbers) - 1}" varStatus="loop">
        ${mfgNumbers[loop.index]}, ${issues[loop.index]}
    </c:forEach>
    
person BalusC    schedule 27.01.2011
comment
Можно ли записать это как функцию generic? что-то вроде stackoverflow.com/questions/27201778/ - person Santhosh; 29.11.2014