我有2个ui:重复嵌套如下:
<ui:repeat var="father" value="#{miuchile3.getMenusPadre(miuchile3.keyModulo)}" >
<li>
<h:commandLink value="#{father.nombre}" action="#{miuchile3.setMenu(father)}">
<f:ajax render=":menupags:menuDetalle" />
</h:commandLink>
<ul>
<ui:repeat var="submenu" value="#{miuchile3.getHijos(father.id)}" >
<li><h:commandLink value="#{submenu.nombre}" actionListener="#{miuchile3.setMenu(submenu)}">
<f:ajax render=":menupags:menuDetalle" />
</h:commandLink></li>
</ui:repeat>
</ul>
</li>
</ui:repeat>
这将生成一个具有此格式的菜单
父亲菜单1
父亲菜单2
等。
当我点击这个子菜单时,我使用f:ajax渲染一个面板组,其中包含所选菜单的详细信息(它显示与它们相关的页面),问题是它只适用于父菜单1及其子菜单,但对于父亲菜单2,它的2个第一个子菜单可以正常工作,如果有第三个子菜单与“父菜单2”相关联并且我点击它,它什么都不做。
我不确定它是否与嵌套的ui:repeat或f:ajax存在问题,但我认为ui:在第二次迭代之后重复停止正常工作或类似的事情......“setMenu()”函数(在嵌套的ui中:重复)由于某种原因停止工作。但也可能是f:ajax ......我真的不知道。
编辑:
现在我发现了这个问题,但我还不知道如何解决它。
问题是,对于第一次迭代(frist菜单及其子菜单),在动作“setMenu()”中调用的方法可以正常工作,但是对于第二次迭代(父菜单2及其子菜单),setMenu( )方法只被调用2次,如果有超过2个子菜单,则在动作中调用的方法(setMenu())不起作用,我的意思是迭代有效,因为它打印了菜单和子菜单的所有名称,但是第一次迭代后的操作仅适用于2个子菜单。
答案 0 :(得分:1)
我改变了ui:重复一个数据表,它按照我的意愿工作..我不建议使用ui:重复嵌套如果你需要在里面调用一些动作,它有奇怪的行为。