у меня есть 2 ui:repeat, вложенные следующим образом:
<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
- son menu_1
- сын меню_2
меню отца 2
- son menu2_1
- сын меню2_2
- сын меню2_3
и т.д..
когда я щелкаю в этом подменю, я использую f: ajax для отображения группы панелей с подробной информацией о выбранных меню (он показывает связанные с ними страницы), проблема в том, что он работает правильно только для родительского меню 1 и его подменю, но для родительского меню 2, оно работает нормально для двух первых подменю, если есть третье подменю, связанное с «отцовским меню 2», и я нажимаю на него, оно ничего не делает.
я не уверен, что это проблема с вложенным ui:repeat или с f:ajax, но я думаю, что ui:repeat перестает работать должным образом после второй итерации или что-то в этом роде. функция «setMenu()» (внутри вложенного ui:repeat) перестают работать по какой-то причине. но это может быть и f:ajax.. я действительно не знаю.
РЕДАКТИРОВАТЬ:
теперь я нашел проблему, но я еще не знаю, как ее решить.
проблема в том, что для первой итерации (первое меню и его подменю) метод, который я вызываю в действии "setMenu()", работает нормально, но для второй итерации (отцовское меню 2 и его подменю) метод setMenu() вызывается только 2 раза, если есть более 2 подменю, метод, который я вызываю в действии (setMenu()), не работает, я имею в виду, что итерация работает, потому что она печатает все имена меню и подменю, но действие после первой итерации работает только для 2 подменю.
if there is a third submenu associated
Я вижу здесь только 2 итерации, поэтому два подменю, не так ли? Событие запускается? Я имею в виду, если вы поставите точку останова, пройдет ли она через нее? Если нет, попробуйте сaction
в порядкеactionListener
и попробуйте с изменением имен методов действия, чтобы избежать проблем, связанных с публикацией IDE/сервера. - person Xtreme Biker   schedule 18.02.2013