【发布时间】:2015-01-12 22:16:27
【问题描述】:
当我使用 <cc:clientBehavior name="chartUpdated" event="change" targets="chartdata"/> 从 复合组件 调度 ajax 事件时,我使用 <f:ajax event="chartUpdated" listener="#{bean.updateListener}"> 在 Facelet 页面 中捕获它.在 backing bean 中,我捕获了 AjaxBehaviorEvent 类型的事件。
public void updateListener(AjaxBehaviorEvent event){
...
}
我知道我可以扩展 AjaxBehaviorEvent 并在其中传递已更改的对象。 For example, Primefaces's Scheduler uses this approach:
<p:ajax event="eventMove" listener="#{scheduleView.onEventMove}" update="messages" />
和支持bean:
public void onEventMove(ScheduleEntryMoveEvent event) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Event moved", "Day delta:" + event.getDayDelta() + ", Minute delta:" + event.getMinuteDelta());
addMessage(message);
}
使用 复合组件 和 @FacesComponent 是否可以实现相同的功能?
提前谢谢你!
【问题讨论】:
标签: jsf jsf-2 composite-component