повторение нескольких элементов в 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)


Если они имеют одинаковый размер, то есть два варианта, если предположить, что это 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