Вложенный b: повтор - второй повтор всегда один и тот же
Я хочу визуализировать вложенную двухуровневую навигацию, используя файл модели. Навигация может измениться.
Существует простой бин NavigationItem, который содержит заголовок, цель, значок и список возможных подпунктов.
Навигация создана очень просто:
@ViewScoped
@Named
public class Navigation implements Serializable {
private List<NavigationItem> navigation = new ArrayList<>();
public List<NavigationItem> getValues() {
if (navigation == null || navigation.size() <= 0) {
NavigationItem navA = new NavigationItem("A", "icon-gauge", "site_a");
{
List<NavigationItem> subNav = new ArrayList<>();
subNav.add(new NavigationItem("1", "", "subsite_1"));
subNav.add(new NavigationItem("2", "", "subsite_2"));
subNav.add(new NavigationItem("3", "", "subsite_3"));
navA.setSubItems(subNav);
}
NavigationItem navB = new NavigationItem("B", "icon-layout", "site_b");
{
List<NavigationItem> subNav = new ArrayList<>();
subNav.add(new NavigationItem("4", "", "subsite_4"));
subNav.add(new NavigationItem("5", "", "subsite_5"));
navB.setSubItems(subNav);
}
NavigationItem navC = new NavigationItem("C", "icon-layout", "site_c");
{
List<NavigationItem> subNav = new ArrayList<>();
subNav.add(new NavigationItem("6", "", "subsite_6"));
navC.setSubItems(subNav);
}
navigation.add(navA);
navigation.add(navB);
navigation.add(navC);
navigation.add(new NavigationItem("Test", "icon-gauge", "site_d"));
}
return navigation;
}
}
А вот и мой JSF
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:b="http://butterfaces.org/components" >
<ul id="side-nav" class="main-menu navbar-collapse collapse">
<b:repeat value="#{navigation.values}" var="nav" rendered="true">
<li class="#{nav.hasSubItems()==false ? '' : 'has-sub'}">
<h:link outcome="#{nav.target}">
<i class="#{nav.icon}"></i>
<span class="title">#{nav.title}</span>
</h:link>
<ui:fragment rendered="#{nav.hasSubItems()}">
<ul class="nav collapse">
<b:repeat value="#{nav.subItems}" var="subNav" rendered="true">
<li>
<h:link outcome="#{subNav.target}">
<span class="title">#{subNav.title}</span>
</h:link>
</li>
</b:repeat>
</ul>
</ui:fragment>
</li>
</b:repeat>
</ul>
</ui:composition>
Мой ожидаемый результат:
- 1
- 2
- 3
- В
- 4
- 5
- С
- 6
- D
Мой фактический результат:
- 1
- 2
- 3
- В
- 1
- 2
- 3
- С
- 1
- 2
- 3
- D
Есть что-то, по чему я скучаю или по вине? Я использую Mojarra 2.2.8 на Tomcat 8
1 ответ
Есть некоторые серьезные проблемы с повторяющимся компонентом mojarra, поэтому мы создали наш собственный компонент в butterfaces (например, простые, richface и т. Д.)
Это похоже на ошибку, и я создал проблему: https://github.com/ButterFaces/ButterFaces/issues/63