2013-11-19 2 views
2

Мне нужно создать составной компонент, содержащий два h: commandLinks. И я хочу передать f: setPropertyActionListeners из клиентского кода, который будет применяться к двум командам. Возможно ли это? Я попытался использовать cc: insertChildren, но соответствующие установщики не запускаются.setPropertyActionListeners к составному компоненту

<my:operationLink action="#{cc.attrs.bean.myAction}"> 
<f:setPropertyActionListener for="<!-- whats here? -->" value="#{cc.attrs.someAttrOne}" target="#{cc.attrs.bean.someAttrTargetOne}"/> 
<f:setPropertyActionListener for="<!-- whats here? -->" value="#{cc.attrs.someAttrTwo}" target="#{cc.attrs.bean.someAttrTargetTwo}"/> 

и мой компонент:

<cc:implementation> 
<h:commandLink id="textLink" value="myTextLink"><ui:insert/></h:commandLink> 
<h:commandLink id="imgLink"><h:graphicImage url="/images/my.gif"/><ui:insert/></h:commandLink> 

мне нужно применить actionlisteners к обоим каналам (в Ui: вставка)

+0

* попытался использовать cc: insertChildren tag – Sashlik

+0

Можете ли вы показать нам какой-то код? –

+0

добавлен код в исходный вопрос – Sashlik

ответ

1

Вы должны объявить <cc:actionSource> в составном интерфейсе с «именем события» в name (например, actionEvent, это совершенно произвольно по вашему выбору) и идентификаторы клиентов этих пространств команд, разделенных в targets.

<cc:interface> 
    <cc:actionSource name="actionEvent" targets="textLink imgLink" /> 
</cc:interface> 

Затем вы можете использовать в клиенте:

<f:setPropertyActionListener for="actionEvent" ... /> 

Не забудьте удалить <ui:insert>. Это действительно не так.

+0

Отлично! Работает так, как ожидалось! Большое спасибо! – Sashlik

Смежные вопросы