Обратный порядок JSTL forEach

Вы конфигурируете goals build и push, которые принадлежат dockerfile-maven-plugin на maven-dependency-plugin, где они на самом деле неизвестны. Опустите эти цели до dockerfile-maven-plugin и попробуйте еще раз, пожалуйста.

Если это еще не произошло, вы также можете следовать этому довольно простому примеру .

25
задан BalusC 24 October 2010 в 15:51
поделиться

2 ответа

Когда Вы используете forEach для создания целочисленного цикла можно продвинуться или назад, но требуется некоторая работа. Оказывается, что Вы не можете сделать этого, например:

<c:forEach var="i" begin="10" end="0" step="-1">
    ....
</c:forEach>

потому что спецификация требует, чтобы шаг был положителен. Но можно всегда циклично выполняться во вперед порядке и затем использовать <c:var преобразовать число постепенного увеличения в постепенно уменьшающееся число:

<c:forEach var="i" begin="0" end="10" step="1">
   <c:var var="decr" value="${10-i}"/>
    ....
</c:forEach>

Однако, когда Вы делаете a forEach по Набору любого вида я не знаю ни о каком способе иметь объекты в обратном порядке. По крайней мере, не без первой сортировки элементов в обратный порядок и затем использование forEach.

Я успешно переместился по a forEach цикл в желаемом порядке путем выполнения чего-то как следующее в JSP:

<%
List list = (List)session.getAttribute("list");
Comparator comp = ....
Collections.sort(list, comp);
%>


<c:forEach var="bean" items="<%=list%>">
     ...
</c:forEach>

С подходящим Компаратором можно циклично выполниться по объектам в любом желаемом порядке. Это работает. Но я не знаю о способе сказать, очень просто, выполнить итерации в обратном порядке обеспеченного набора.

34
ответ дан Eddie 28 November 2019 в 21:13
поделиться

Вы могли также рассмотреть прокрутку пользовательской функции JSTL, которая возвратила обратную копию Вашего списка, поддержанного чем-то вроде этого:

public static <T extends Object> List<T> reverse(List<T> list) {
    List<T> copy = Collections.emptyList();
    Collections.copy(copy, list);
    Collections.reverse(copy);
    return copy;
}

Не работает на Наборы, но, как упомянуто в другом ответе, понятие упорядочивания немного неопределенно для некоторых наборов.

3
ответ дан harto 28 November 2019 в 21:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: