Это невозможно.<ui:repeat>
добавляет идентификатор клиента с его собственным идентификатором и индексом.Все эти группы получают идентификаторы, такие как j_id1:0:someid
, j_id1:1:someid
, j_id1:2:someid
и т. Д. Предполагается, что в вашей конкретной конструкции должно работать следующее:
<f:ajax render=":#{component.parent.parent.clientId}:someid" />
Это будет предшествовать току <ui:repeat>
.идентификатор клиента динамически.Однако он работает только при использовании MyFaces вместо Mojarra .<ui:repeat>
во многих случаях нарушается в Мохарре.Они запланировали множество исправлений для 2.2.
Альтернативой является группировка их в общий компонент NamingContainer
, такой как <h:form>
, так что вы можете использовать относительный идентификатор.
<ui:repeat var="o">
<h:form>
<h:panelGroup id="someid">
<ui:repeat>
// HTML
</ui:repeat>
</h:panelGroup>
<div>
<h:commandButton action="#{o.doSomething}">
<f:ajax event="action" render="someid" />
</h:commandButton>
</div>
<h:form>
</ui:repeat>