Как обратиться к компоненту внутри контейнера циклического именования
У меня есть следующая структура (содержимое и атрибуты опущены):
<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 -->
Поскольку содержимое внутри контейнера зависит от действия кнопки внутреннего списка, мне нужно обновить его. Подход, как показано выше, работает, когда нет внешнегоui:repeat
, Тем не менее, это не сcomponent not found
ошибка, когда есть.
Кажется, это связано с тем, чтоcc.clientId
тогда сам содержит индекс строки внешнегоui:repeat
например,outerlist:0:myCC:container
, Каккомментарий к этому ответу указывает, что этот индексированный идентификатор недоступен в серверном представлении дерева представлений. Вместо этого «индекс строки существует только на стороне клиента». Должен признать, что я не совсем понимаю, как осуществляется индексация и что доступно на стороне сервера.
Итак, мой вопрос: как JSF выполняет эту индексацию, как она (на сервере) разделяет различные «экземпляры» внутриui:repeat
и есть ли решение для того, что я пытаюсь достичь с помощью приведенного выше кода?