2013-02-18 132 views
0

我有2个UI:可重复嵌套这样的:嵌套UI:重复的问题(或f:AJAX)

<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

    • 儿子menu_1
    • 儿子menu_2

  • 父亲菜单2

    • 儿子menu2_1
    • 儿子menu2_2
    • 儿子menu2_3

etc ..

当我点击这个子菜单时,我使用f:ajax来渲染一个面板组,其中显示了所选菜单的详细信息(它显示了与它们相关的页面),问题是它只适用于父亲菜单1及其子菜单,但对于父菜单2,如果存在与“父菜单2”相关联的第三子菜单并且我点击它,则它不执行任何操作。

即时通讯不知道是否是嵌套的用户界面问题:重复或与f:ajax,但我认为ui:重复停止工作后,第二次迭代或类似的东西..“setMenu()”功能(在嵌套的ui中:重复)由于某种原因停止工作。但也可能是f:ajax ..我真的不知道。

编辑:

现在我发现了这个问题,但我不知道如何解决它。

问题在于,对于第一次迭代(第一个菜单及其子菜单),在动作“setMenu()”中调用的方法工作正常,但对于第二次迭代(父菜单2及其子菜单),setMenu ()方法仅被调用2次,如果有超过2个子菜单​​,在动作(setMenu())中调用的方法不起作用,我的意思是迭代起作用,因为它打印菜单和子菜单的所有名称,但第一次迭代后的操作仅适用于2个子菜单​​。

+0

使用只是行动而不是actionListener发生同样的事情..其实我只是改变了actionListener来看看会发生什么。 – user2018726 2013-02-18 16:59:41

+0

'如果有第三个子菜单关联'我在这里只看到2次迭代,所以有两个子菜单,不是吗?活动是否被解雇?我的意思是,如果你放置一个断点,它会通过它吗?如果不是,请按照actionListener的顺序尝试'action'并尝试改变操作方法名称,以避免IDE /服务器发布相关问题。 – 2013-02-18 17:37:03

+0

这个菜单只支持2个级别,为什么只有2个迭代..我的问题在这里不是菜单的生成..这是工作正常,问题是当我点击每个子菜单中应该呈现其细节,但它只适用于我的第一个菜单和子菜单,但是当我点击我的第二​​个父菜单的子菜单时,它显示了第一个2子菜单,但如果有更多,它不显示其他人的细节.. 看看我的第一篇文章中描述的菜单格式..在该模型中,一切正常,除非我点击“儿子menu2_3 “, 什么都没发生。 – user2018726 2013-02-18 17:50:23

回答

1

我改变了用户界面:重复数据表,它的工作原理我想..我不会推荐使用用户界面:重复嵌套,如果你需要调用一些行动里面,它有奇怪的行为。

+0

你在用Mojarra吗?它确实有一个[相关的bug](http://java.net/jira/browse/JAVASERVERFACES-1817),它在2.1.14中修复。 – BalusC 2013-02-20 20:12:35