Рассмотрим простой составной компонент, который принимает параметр действия какого-либо рода - например, «prettifier» простой ссылки. Я хочу «ajaxify» его.JSF 2.0 Компонентные компоненты - параметр ajax render. Определение компонента OUTSIDE
<composite:interface>
<composite:attribute name="act" method-signature="java.lang.String action()"></composite:attribute>
<composite:attribute name="text" required="true"></composite:attribute>
<composite:clientBehavior name="click" event="action" targets="l"/> </composite:interface>
<composite:implementation>
<h:commandLink id="l" act="#{cc.attrs.action}" immediate="true"> <b>#{cc.attrs.text}</b> </h:commandLink> </composite:implementation>
я выставить событие через поведение клиента. Я использую это так:
<h:panelGroup layout="block" id="outside">
#{mybean.otherdata} <br/>
<mc:mylink text="Click click" action="#{mybean.click}" >
<f:ajax event="click" render="outside"/>"
</mc:mylink><br/>
</h:panelGroup>
Вы можете увидеть, что я хочу сделать: Я хочу сделать Ajax визуализации вне композит определения; просто настройка рендеринга на «внешний» дает ошибку <f:ajax> contains an unknown id
.
Да, я знаю об именах контейнеров, и я знаю, что мы можем добавить двоеточие и указать абсолютный путь, но это довольно неуклюжий. Если я закрою его еще несколькими слоями (это весь смысл), мне придется связать эти ссылки вместе вручную.
Могу ли я сделать некоторую ссылку, например render="../outside"
, чтобы пропустить ссылку на родительский контейнер компонента?
Я сделал приложение jsf 1 с a4j, и этот шаблон использовался повсюду.
автор: «Этот шаблон использовался повсюду» Я имею в виду, что a4j, похоже, поднимается вверх по контейнерной иерархии, пока не найдет матч. составной компонент def, кажется, завершает поиск на границе компонента – james