2013-02-18 133 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