Вложенный 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

Другие вопросы по тегам