Кто-нибудь знает, почему приведенный ниже код выводит 2 каждого навигационного элемента.Повторяющийся цикл Apache Sling
//get the full path to the current page
String home = Text.getAbsoluteParent(currentPage.getPath(), 2);
int absParent = currentStyle.get("absParent", 1);
//checks for invalid and hidden pages.
PageFilter filter = new PageFilter(request);
//utility class that provides an iterator over navigation elements
Navigation nav = new Navigation(currentPage, absParent, filter, 1);
for (Navigation.Element i: nav) {
%><li <%= i.hasChildren() %>><a href="<%= i.getPath() %>.html"><%= i.getTitle() %></a> <%
break;
}
Но если я добавлю оператор switch в цикл for, он отображает 1 каждого элемента навигации, как должен.
for (Navigation.Element i: nav) {
switch (i.getType()) {
case ITEM_BEGIN:
%><li <%= i.hasChildren() %>><a href="<%= i.getPath() %>.html"><%= i.getTitle() %></a><%
break;
}
}
Это сводит меня с ума, любая помощь очень ценится! Благодаря!
благодаря @anij это только кажется избыточным кодом на добавьте в оператор switch. знаете ли вы, есть ли другой способ захвата страниц верхнего уровня. образец кода действительно поможет мне стать новым новичком для CQ5. –
@Delmon Young Вы пытаетесь создать компонент «Вверх Навигация»? Это ваша проблема. Если да, вы можете посмотреть код для существующих образцов сайтов, которые поставляются вместе с установкой CQ5. Здесь присутствует навигационный компонент. Я попытаюсь опубликовать код позже, но вы можете определенно проверить образцы. В «crxde» вы можете посмотреть в/libs/foundation/components (я думаю, что это путь) или в/apps//components. –
AniJ
Благодаря @anij код сверху является модификацией от образцов сайтов, которые поставляются с установкой CQ5. Я пытался лучше понять, почему они функционируют так, как они делают. Если у вас есть пример кода, который будет очень полезен. –