Я создал составной компонент, который имеет commandLink, встроенный в пользовательский интерфейс: repeat.Мне нужно иметь возможность динамически изменять метод, который вызывается через свойство действия commandLink, но это не представляется возможным из-за того, что вам нужно указать идентификатор commandLink в
, так как commandLinksв пользовательском интерфейсе: повторяю, все они имеют динамический идентификатор.
В качестве обходного пути я пытаюсь использовать setPropertyActionListener для ссылки на команду.Однако не похоже, что метод когда-либо вызывается.Я что-то пропустил?Это неправильный способ идти о том, что я хочу?
Вот пример кода.
Составной компонент:
<ui:repeat value="#{cc.attributes.value}" var="aUser">
<li class="ui-widget-content ui-state-default q-userListResult">
<p:commandLink
styleClass="q-userList-resultLink"
update=":userList:q-userList-formUsers:userToolTip">
<f:setPropertyActionListener value="{aUser}" target="#{cc.attributes.resultLinkActionListener}"/>
Использование страницы:
<q:userList id="userList"
value="#{caseWizardBackingBean.companyContacts}"
renderHeader="false"
resultLinkActionListener="#{caseWizardBackingBean.selectedCompanyContact}"/>
Бин:
private CTProfile selectedCompanyContact;
public CTProfile getSelectedCompanyContact() { return this.selectedCompanyContact; }
public void setSelectedCompanyContact(CallTrackProfile ctp) { this.selectedCompanyContact = ctp; }
Я пытался добавить некоторые отладочные операторы и точки останова в метод получения и установки свойства, но они никогда не были обработаны.Я предполагаю, что происходит что-то странное, потому что все примеры, которые я могу найти, показывают, что это должно работать (но они не используют составной компонент).
Я должен отметить, что я использую PrimefacescommandLink, но, похоже, это происходит и с обычным commandLink.