Как программно или динамически добавить слушатель ajax к компоненту JSF 2?
Я пытался:
...
FacesContext facesContext = FacesContext.getCurrentInstance();
AjaxBehavior dragStart = (AjaxBehavior)facesContext.getApplication().createBehavior(AjaxBehavior.BEHAVIOR_ID);
dragStart.addAjaxBehaviorListener(new DragEnterListener());
dragStart.setTransient(true);
component.addClientBehavior("dragstart", dragStart);
...
public class DragEnterListener implements AjaxBehaviorListener {
@Override
public void processAjaxBehavior(AjaxBehaviorEvent event) throws AbortProcessingException {
System.out.println("AjaxListener CALLED!!! ");
}
}
Но это не работает.На странице я получил это исключение JS:
serverError: class java.lang.IllegalStateException
cz.boza.formcreator.FormModel$DragEnterListener
Я нашел этот пример в RichFaces: http://community.jboss.org/message/611571
Но в обычном JSF 2 в классе AjaxBehavior нет
addAjaxBehaviorListener(MethodExpression methodExpression)
есть только
addAjaxBehaviorListener(ValueExpression valueExpression)
Я пытаюсь решить эту проблему в течение многих дней.
Пожалуйста, помогите.
Большое спасибо.