Хорошо, я предполагаю, что это может быть ошибкой, но я не совсем уверен.Кто-нибудь может увидеть, что я делаю не так?
Вот ситуация.У меня есть составной компонент, который, кажется, отлично работает, когда он один на странице.Проблема возникает, когда компонент вложен в пользовательский интерфейс: repeat.Вот два места, где я вызываю компонент (только для теста):
<q:case aCase="#{userSummaryBackingBean.userCases.get(0)}">
<f:setPropertyActionListener for="clickEvent" target="#{userSummaryBackingBean.value}" value="single"/>
<f:ajax execute="@this" render="@this :westPaneForm"/>
</q:case>
<ui:repeat value="#{userSummaryBackingBean.userCases}" var="aCase">
<li>
<q:case aCase="#{aCase}">
<f:setPropertyActionListener for="clickEvent" target="#{userSummaryBackingBean.value}" value="repeat"/>
<f:ajax execute="@this" render="@this :westPaneForm"/>
</q:case>
</li>
</ui:repeat>
, и компонент определяется следующим образом:
<cc:interface>
<cc:attribute name="aCase" type="com.autonomy.calltrack.data.dto.Case"/>
<cc:actionSource name="clickEvent" targets="caseCommandLink"/>
<cc:attribute name="action" targets="caseCommandLink" />
<cc:attribute name="actionSource" targets="caseCommandLink" />
<cc:clientBehavior name="click" event="action" targets="caseCommandLink" default="true"/>
</cc:interface>
<cc:implementation>
<h:commandLink id="caseCommandLink" styleClass="case ui-state-default" title="#{cc.clientId}">
--- more code ---
</h:commandLink>
</cc:implementation>
Как видите, вызовыточно такие же, но один элемент работает, а элементы в пользовательском интерфейсе: повторить - нет.Теперь, для меня имеет смысл, что вещи будут проблематичными, когда сам компонент имеет пользовательский интерфейс: repeat.Я имею в виду, как бы вы перенастроили свой actionSource и т. Д., Не зная ID нужных вам предметов (что внутри повторения в принципе невозможно).
ОДНАКО, когда я ставлю интерфейс: повторяю за пределами компонента, я не могу обернуться, почему что-то не работает.ДЕЙСТВИТЕЛЬНО странно, что f: ajax работает совершенно нормально.Очень странно.
Я попытался добавить префикс атрибутов target к: # {cc.clientId}, и это тоже не помогло (даже если «путь» к компонентам правильный).Я делаю что-то неправильно?У кого-нибудь есть решение?
Хорошо, что-то должно быть не так, потому что даже это не работает:
<ui:repeat value="#{userSummaryBackingBean.userCases}" var="aCase">
<h:commandLink id="caseCommandLink" value="test" styleClass="case ui-state-default">
<f:setPropertyActionListener target="#{userSummaryBackingBean.value}" value="REPEAT"/>
<f:ajax execute="@this" render="@this :westPaneForm"/>
</h:commandLink>
</ui:repeat>
Какого черта я мог пропустить?