动态面板丰富字体中的菜单



我正在尝试使用我已经拥有的项目列表动态创建一个panelMenu。但它似乎不起作用,因为我因此一无所获。所以这是我的代码:

<rich:panelMenu id="filterListFuncPost" style="width:180px"
    itemMode="ajax" groupMode="ajax"
    groupExpandedLeftIcon="triangleUp"
    groupCollapsedLeftIcon="triangleDown"
    topGroupExpandedRightIcon="chevronUp"
    topGroupCollapsedRightIcon="chevronDown" itemLeftIcon="disc">
        <rich:panelMenuGroup label="Functional Positions">
            <c:forEach xmlns:c="http://java.sun.com/jstl/core" var="item"
                items="#{reportsBacking.selectedFunctPosIndex}">
                    <rich:panelMenuItem label="#{item}" />
            </c:forEach>
        </rich:panelMenuGroup>
</rich:panelMenu>

它可能会有所帮助,我找到了一种使其工作的方法,即使用rich:list而不是c:forEach并且效果很好。

更新:适用于RichFaces panelMenu,但前提是您使用正确的迭代器。我以全新的眼光回到这个问题,并找到了一个相当明显的解决方案,但它似乎还没有出现在互联网上,所以这里是:

xmlns:c="http://java.sun.com/jstl/core"
xmlns:rich="http://richfaces.org/rich"
<rich:panelMenu id="menuRoot">
    <rich:panelMenuGroup id="lev1menu">
        <c:forEach var="fancyGroup" items="#{myBean.myFancyGroupEntity}">
            <rich:panelMenuGroup label="#{fancyGroup.name}" id="lev2menu_#{fancyGroup.id}">
                <c:forEach var="fancyItem" items="#{fancyGroup.items}">
                    <rich:panelMenuItem label="#{fancyItem.name}" action="#{myBean.viewItem}">
                        <a4j:actionParam name="itemId" value="#{fancyItem.id}"/>
                    </rich:panelMenuItem>
                </c:forEach>
            </rich:panelMenuGroup>
        </c:forEach>
    </rich:panelMenuGroup>
</rich:panelMenu>

为什么有效?JSTL 核心组件在 JSF 组件(或类似的东西(之前被解析和处理,因此 c:forEach 在解析和处理 JSF 之前渲染出所有 RichFaces(或其他 JSF(子组件。因此,panelMenu 在解析时具有正确类型的子级。

旧:不适用于 RichFaces panelMenu ( org.richfaces.component.UIPanelMenu ( 组件。

我尝试了一种类似的方法,使用数据库项动态生成菜单层次结构,但是当它尝试在服务器端解析它时,RichFaces 会尝试将任何子项转换为 panelMenuGroup 或 panelMenuItem 并失败ClassCastException尝试从 com.sun.facelets.component.UIRepeat 进行转换,这对于您的 JSTL 对于每个迭代组件(这是服务器上org.apache.taglibs.standard.tag.rt.core.ForEachTag的实例(都是相同的, 我认为(。

相关内容

  • 没有找到相关文章

最新更新