【发布时间】:2012-03-24 03:17:01
【问题描述】:
我从上周开始使用 PrimeFaces 3.1.1,它似乎是一个出色的可视化组件框架。我正在从 Richfaces 进行迁移,并试图让一切仅适用于 Prime 和 JSF2(2.1.6 版本)。
我的问题来自我必须实现的动态工具栏。有的操作是直接集成在工具栏(commandButtons)上的,有的操作里面有一些子操作,所以我只好用操作名做一个menuButton,把每一个操作都像menuitem一样添加到这里。这是我的代码:
<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>
我的问题是我只得到了第一个操作组件,它正确呈现了命令按钮并且它们的操作运行良好,但是在“#{!opBean._Clickable}”的情况下,我得到一个带有名称的菜单按钮,但里面没有菜单项。看起来嵌入的 ui:repeat 迭代做得不好。
我尝试了使用 c:foreach、c:choose 和 c:otherwise 标签的相同机会,在这种情况下,我得到了菜单在视觉上做得很好,commandButton 操作也很好,但是当我单击 menuItem 时,它说 opBean2 无法识别......但是正如我之前所说,我更喜欢专门使用 JSF 标签。有没有办法做到这一点?
【问题讨论】:
-
顺便说一下,logedBean._apps 和 opBean._subOperaciones 都是集合。
标签: java jsf-2 primefaces