Skip to main content

Vaadin: A Java Web Application Framework



Perhaps you're tired of battling web frameworks with their mix of languages, rules, configurations, scripts and XML files. Are page-oriented web apps with the attendant complexity of handling state, debugging and testing making life difficult? Does the thought of supporting multiple browsers suck all the air out of the room? Maybe you or your team are Java developers, more familiar with Java application development than web development. For these reasons and more, you should investigate Vaadin, which is Open Source and freely available at under the Apache 2.0 license.

Server-Side Development

Vaadin is a Java web application framework for Rich Internet Applications (RIA) which have many characteristics of desktop applications but are web applications running in browsers. The large collection of UI components and the use of layouts is more akin to Swing development for the desktop. Developers implement these widgets in a Java server application which Vaadin dynamically translates (using Google's Web Toolkit (GWT)) into browser client-side components using AJAX technology behind the scenes. The application code runs in the server, handling the client requests via “normal” event listener handlers.

Support, Community and Tools

The free support behind Vaadin is impressive. The Book of Vaadin is an excellent manual. There is a short tutorial and a long tutorial covering many aspects of the Vaadin library. I have used the Vaadin Forum several times and the response from the community has been swift and helpful. Vaadin also provides an impressive Sampler Demo page which shows off all the UI components and the source samples used behind each one. And, of course, the source code for Vaadin is available.

Also available are tools for Eclipse and Netbeans integration, Maven support and testing. I've used the Eclipse plug-in for development and a Glassfish server and debugging is almost like debugging a desktop application-- no more breaks when something magical happens because of XML. I would say the area that could use more attention is explaining database binding. It's discussed in the book, but not really demonstrated. A solid tutorial showing this, now that one of the SQL Add-ons has lately been incorporated into the basic Vaadin library, would be useful.

There is a growing library of Add-ons (nearly 200), some free and some for sale. Example Add-ons include additional UI widgets, data components, themes, tools, etc.

Basic Vaadin, however, may be all you need. The basic Vaadin library is a single JAR file which needs to be included as part of your web application.

The company behind Vaadin is Vaadin Ltd., based in Finland. They also provide support and development help for a fee. The Vaadin framework may not be the holy grail but it's worth a look, if only to compare it to other frameworks.

Vaadin Components

Vaadin's Table and Tree Components

Vaadin's Table and Tree Components

Some other features:

The five supported browsers are:

  • Internet Explorer 6 – 9
  • Firefox 3 – 6
  • Safari 4 – 5
  • Opera 10 – 11
  • Chrome 13

Servers supported:

  • Apache Tomcat 4.1+
  • Oracle Weblogic Server 9.2+
  • IBM WebSphere Application Server 6.1+
  • JBoss Application Server 3.2.8+
  • Glassfish 2+
  • Google App Engine
  • Others

Comprehensive Component Framework

  • Rich, interactive widgets with lazy-loading
  • Drag and Drop support
  • Mobile touch event support
  • Databinding using MVC
Scroll to Continue


  • Server-side state management
  • Application code runs in the server
  • Secure parameter and request validation
  • Built-in input validation
  • SSL support

Extensible Component Architecture

  • Extensible widgets based on GWT

© 2011 David Hunt


Kris on January 10, 2015:

Just wondering if the GWT mail eampxle for source maps code is available for download? It seems that I've got the Code server to generate the source mapping files and I enable the source mapping in my chrome browsers. But when I select the JavaScript file in the source view all I see is JavaScript not Java. Just wondering if there is a some sample code to look to make sure I've got everything set up. BTW do I have to set the link between the JS and the Java file by hand, using the sourceMappingURL ? I currently using GWT 2.5 RC2

David Hunt (author) from Cedar Rapids, Iowa on July 16, 2012:

Thanks for commenting, Nitin. I just received their latest newsletter and apparently Google is moving GWT toward a more open model and Vaadin has been made part of GWT's steering committee, meaning Vaadin will have even more support for GWT.

Nitin Pathak on July 16, 2012:

Hey thanks for sharing and I am seriously considering Vaadin over Adobe Flex for the RIA development.

David Hunt (author) from Cedar Rapids, Iowa on February 18, 2012:

Thanks, Tenkay. The Book of Vaadin is very good and free. They also have a pretty good tutorial. Good luck.

TENKAY from Philippines on February 18, 2012:

Hey this is great. I will look into this and will ask some friends to try the framework. Expect some questions from us, hope you don't mind.

Thanks for sharing.

Related Articles