Many requirements asks to call external service using ajax or do some javascript like using js calendars and on user click send the response to the bean to save it in database or to do some business validation.

The way to do that is using serverListener & clientListener .

The serverListener tag is a declarative way to register a server-side listener that should be executed when a custom client event is fired.

while The clientListener tag is a declarative way to register a client-side listener script to be executed when a specific event type is fired.

I have created a small demo application that calls ajax call & jquery to get location & ip and then we will send it to back bean which will be printed in the console.

whereactionEvent.cancel(); is needed if you are using commandbutton without partialsubmit=”true”
andAdfCustomEvent.queue(actionEvent.getSource(), “servListener”, { fvalue : response_Json },true); return false;
registers the custom event and set parameter “fvalue” with the json string value

3.create a bean for example backbean demoBB with method name getAjaxCallbackValue

that you already referenced in your serverListner in step 1 & add the code to this method as follows to print the value