Print Shortlink

A Simple example of Ext.direct using DirectJNgine

During the Struts days, there was a library called DwR (Direct Web Remoting) that was popularly used to access the Java classes directly from JavaScript. DwR provided a JavaScript wrapper for the server side Java classes, so the code will look as if you’re directly calling the Java code from JavaScript.

A similar concept in Ext JS 4 is the Ext.direct pack. It provides you a facility to invoke the Java classes directly from Ext JS 4 code. There are multiple implementations of Ext direct available. One such implementation is DirectJNgine. DirectJNgine provides the infrastructure to invoke the Java classes directly from Ext JS 4 API.

A server side Java class “WeatherReporter” that can be invoked from client is shown below. It is decorated with the annotations provided by DirectJNgine.

package com.durasoft;
import com.softwarementors.extjs.djn.config.annotations.DirectAction;
import com.softwarementors.extjs.djn.config.annotations.DirectMethod;

@DirectAction(action="WeatherReporter")
public class WeatherReporter {
	@DirectMethod
	public String getTemperature(String city) {
		return "Temperature of " + city + " is " + (Math.random()*100);
	}
}

The Ext JS 4 code that is used to invoke WeatherReporter’s getTemperature method is shown below.

Ext.onReady(function(){
	Ext.Direct.addProvider(
		DuraSoft.direct.REMOTING_API
	);
        WeatherReporter.getTemperature(city,function(result){
		alert(result);
	});
});

There’s a JavaScript class WeatherReporter generated by the DirectJNgine facility. This class sends an AJAX request to a DirectJNgineServlet that actually invokes our Java class. The web.xml file is provided with all these configuration details.

The complete project created in Eclipse is available at http://durasoftindia.com/downloads/ExtDirect.rar

Leave a Reply