С JSF2 ajax был стандартизован JSF API. Все компоненты, поддерживающие поведение клиента, должны реализовать ClientBehaviorHolder
, который, в свою очередь, предлагает метод addClientBehavior()
для добавления поведения клиента. Конкретная реализация поведения клиента для ajax - это AjaxBehavior
, которая, в свою очередь, предлагает метод addAjaxBehaviorListener()
, который именно вы ищете.
Все со всеми, в вашем конкретном случае, его можно заменить следующим образом:
UICommandLink link = new UICommandLink(); // Note: you can also just use standard JSF HtmlCommandLink.
link.setId("linkId"); // Fixed ID is mandatory for successful processing.
link.setValue("click here"); // Not sure if you need it. Just to be complete.
AjaxBehavior ajaxAction = new AjaxBehavior();
ajaxAction.addAjaxBehaviorListener(new AjaxBehaviorListener() {
@Override
public void processAjaxBehavior(AjaxBehaviorEvent event) throws AbortProcessingException {
System.out.println("Ajax behavior listener invoked."); // Do your actual job jere.
}
});
link.addClientBehavior("action", ajaxAction); // Note: don't use "click" event!
Я с трудом находя импорт для AjaxBehavior, AjaxBehaviorEvent, AbortProcessingException. Есть ли вероятность, вы можете скопировать эти вложения из кода? Благодаря! – UrK
Нажмите на ссылки. Все они указывают на javadoc. Или просто нажмите Ctrl + Shift + O в Eclipse и, если нужно, выберете из пакета 'javax.faces'. – BalusC