2011-01-27 2 views
0

У меня есть это требование, чтобы перебрать три списка одновременно в jstl. для итерация единого списка мы используемИтерирование многоуровневых элементов в 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> 

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

ответ

8

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

  1. Объединить их в один список с организациями, которые, в свою очередь repesents элементы каждого другого списка в одном классе, например 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> 
    
+0

Можно ли написать это как ' общая функция? что-то вроде http://stackoverflow.com/questions/27201778/writing-custom-functions-in-jstl –

Смежные вопросы