UIDL aims to create a scriptable, JavaScript based language for expressing complex user interfaces. The main features of a UIDL page are the ability to create complex user interfaces (using Swing based widgets) and to communicate asynchronously with server based objects (using the JSON-RPC protocol). While this may sound similar to AJAX, the implementation is much cleaner thanks to the ability to natively instantiate complex UI components within the browser and the ability to transparently present server based objects via their JavaScript proxies.

Changes

JSON-RPC remoting was simplified by enhancing client functionality. Remote interfaces are no longer required as proxy objects are automatically constructed from exposed meta-data (by calling "browser.createProxyObjects"). Due to the simplified native JSON-RPC support, support for Spring RPC and JavaScript based JSON-RPC is now deprecated. The build files were reorganized so that common libraries don't need to be packaged twice (for compile time and runtime). This reduces the overall distribution size.

URL: UIDL: User Interface Description Language