Jak zaadresować komponent wewnątrz pętlowego kontenera nazw
Mam następującą strukturę (pominięto zawartość i atrybuty):
<ui:repeat id="outerlist">
<my:compositeComponent id="myCC">
<h:panelgroup id="container">
Some content here (outputText, etc.)
<ui:repeat id="innerlist">
<h:commandButton>
<f:ajax render=":#{cc.clientId}:container" />
<!-- all closing tags accordingly -->
Ponieważ zawartość wewnątrz kontenera zależy od działania przycisku listy wewnętrznej, muszę go zaktualizować. Podejście pokazane powyżej działa, gdy nie ma zewnętrznegoui:repeat
. Jednak kończy się niepowodzeniemcomponent not found
błąd, gdy taki jest.
Wydaje się, że wynika to z faktu, żecc.clientId
następnie sam zawiera indeks wiersza zewnętrznegoui:repeat
, np.outerlist:0:myCC:container
. Tak jakkomentarz do tej odpowiedzi wskazuje, że ten indeksowany identyfikator nie jest dostępny w reprezentacji drzewa widoku po stronie serwera. Zamiast tego „indeks wiersza istnieje tylko po stronie klienta”. Muszę przyznać, że nie do końca rozumiem, jak odbywa się to indeksowanie i co jest dostępne po stronie serwera.
Moje pytanie brzmi: w jaki sposób JSF dokonuje tego indeksowania, w jaki sposób (na serwerze) oddziela różne „instancje” wewnątrzui:repeat
i czy istnieje rozwiązanie tego, co próbuję osiągnąć za pomocą powyższego kodu?