自从上周开始,我正在使用PrimeFaces 3.1.1,它似乎是一个优秀的可视化组件框架。我正在从Richfaces进行迁移,并尝试只使用Prime和JSF2(2.1.6版本)来使所有内容都可用。如何制作primefaces动态工具栏
我的问题伴随着我必须实现的动态工具栏。有些操作直接集成在工具栏(commandButtons)中,其他操作内部有一些子操作,所以我必须使用操作名称来执行menuButton,并在菜单项中添加每一项操作。这里是我的代码:
<h:panelGroup id="Texto_Header" layout="block">
<h:form>
<p:toolbar>
<p:toolbarGroup>
<!-- Operaciones de aplicación -->
<ui:repeat value="#{logedBean._apps}" var="opBean">
<!-- OPERACION PRINCIPAL EJECUTABLE -->
<h:panelGroup rendered="#{opBean._Clickable}">
<p:commandButton ajax="true" value="#{opBean._Nombre}"
action="#{opBean.actionOperationClick}" />
</h:panelGroup>
<!-- OPERACION PRINCIPAL CON SUBOPERACIONES -->
<h:panelGroup rendered="#{!opBean._Clickable}">
<p:menuButton value="#{opBean._Nombre}">
<ui:repeat value="#{opBean._subOperaciones}" var="opBean2">
<p:menuitem ajax="true" value="#{opBean2._Nombre}"
actionListener="#{opBean2.actionOperationClick}" />
</ui:repeat>
</p:menuButton>
</h:panelGroup>
</ui:repeat>
</p:toolbarGroup>
</p:toolbar>
</h:form>
</h:panelGroup>
我的问题是,我只得到了第一个操作部件,它正确地呈现CommandButton控件和他们的行动的效果不错,但是在“#的情况下{!opBean._Clickable} “我得到一个带有名字的menuButton,但里面没有menuitem。它看起来像嵌入式用户界面:重复迭代没有做好。
我曾尝试使用相同c机会:的foreach,C:选择和C:否则标签,在这种情况下,我得到的菜单视觉做得好,的commandButton动作过于运作良好,但是当我点击一个menuItem,它说opBean2不被识别......但正如我之前所说的,我更喜欢独占使用JSF标签。有没有办法做到这一点?
顺便说一句,这两个logedBean._apps和opBean._subOperaciones收藏集。 – 2012-03-06 16:09:10