Imagine a bacon-wrapped Ferrari. Still not better than our free technical reports.

The Ultimate Java Web Frameworks Comparison: Spring MVC, Grails, Vaadin, GWT, Wicket, Play, Struts and JSF

8. UX, Look and feel

One of the most important features! What does the end user see, what is their experience of the application and UI? It’s pointless having the most amazing framework if the user experience is poor. The scores in this section also reflect how hard it is to create the UI with each framework.

Spring MVC

Spring MVC has a very rich feature set to develop and maintain code on the server side, but despite its extensivity it still doesn’t provide any rich framework for building awesome interfaces. No matter, you can still use it to write a solid backend and use another framework intended for building your UI. It’s versatile and plays well with others, so, really, the world is your oyster.

Score: 2/5 — No re-usable and nice components. But templates are easy to manage and create.


Grails

Do you need something complicated in the UI? Then either create it yourself in GSP with a possible addition of JavaScript/CSS or find a specific plugin that will do the job for you. Most certainly you won’t have to implement a date picker yourself, but be ready to fine-tune your layout CSS by hand. The auto-generated project skeleton has some basic view templates and CSS to start with. Plugins include integrations with jQuery and Twitter Bootstrap, rich UI AJAX components and a bunch of other things.

Score: 4/5 — Plugins provide integrations with popular JS frameworks and include many rich UI components.


Vaadin

Vaadin themes are collections of layouts for components, custom images and CSS, The whole idea to have different themes is to separate the logic of components from their look and feel and being able to switch themes without changing the logic. A theme follows a specific directory layout, and with them you can specify the css for the default Vaadin components or create custom components.

One of the coolest things about themes is that you can inherit from existing themes, so when you need just to tweak a bit, you don’t need to create a monster or hack themes installed by default. This means you can inherit from a theme and just add the missing pieces.

Score: 5/5 — This is what Vaadin was made to do! Its themes are a joy to use, and the results are very slick and pleasing to the eye.


GWT

GWT is very versatile when it comes to customizing and awesome-izing the look of your web apps. Because it’s a component-based framework, you can modify the look of your app at any time without breaking the logic. This separation also helps the application render more quickly, consume less memory and make it easier to tweak during edit/debug cycles.

GWT allows you to associate style sheets with your project in order to further customize it. The GWT theme style sheets are associated with the application as a whole – there are three options: Standard, Chrome, and Dark. You can also create an application stylesheet(s) where you can define specific styles for your application in CSS.

Score: 5/5 — Theme hierarchy allows you to modify individual component look without break overarching application theme which allows for a great deal of easy and pretty customization.

Your time is too valuable to sit around waiting for your code to redeploy. Seriously, imagine how much more you could accomplish if you choose to Eliminate Redeploys from your daily routine!

Wicket

Like the other component based frameworks, Wicket gives you a large selection of out-of-the-box widgets to choose from. If none are to your liking, the website links to a handful of good websites where you can find more Wicket Components, HTML, CSS and JavaScript to further customize your web application. It’s a very versatile framework and plays well with others, so the UX choices really fall to you!

Score: 3.5/5 — UX is pretty mediocre out of the box (solid 90s look) even with its large library of pre-canned widgets, but paired with a good framework your apps can look awesome.


Play

Play has some basic themes, however there is not widespread support for component libraries built in. Play applications usually leverage LESS CSS and CoffeeScript mixed with templates instead of the CSS and JavaScript leveraged by traditional Java web applications.

Score: 3/5 — Nothing mind-blowing, but Play has some enhancements over standard JavaScript, CSS, and XHTML by providing LESS CSS and CoffeeScript mixed with Scala templates.


Struts

When you’re using Struts, most of the UX is up to you. Grab a front-end developer to write your HTML, CSS and JS and fill it with your data using JSP, Velocity or Freemarker templates. Struts has 3 predefined themes: simple, xHTML, and css_xHTML. They determine the HTML generated out of the JSP tags. New themes can be created and existing ones can be modified. Struts supports AJAX out of the box, thus there is no need to write JavaScript by hand for it.

Score: 2.5/5No built-in or 3rd party components. Some built-in AJAX support.


JSF

JSF is great for development teams that want to create great full-featured UIs without having to become JavaScript masters. There are a lot of great components already in the catalog, and there are also fantastic additions to JSF to provide even more high quality components. IceFaces and PrimeFaces are two examples of great JSF catalog additions. With the advancement of these extra components, some of the web applications created with JSF are indistinguishable from their desktop counterparts.

Score: 4.5/5 — The library of built in components is very full featured and there is also an extensive 3rd-party catalog available.

web-frameworks-ux-look-and-feel

Framework Score

Vaadin

5

GWT

5

JSF

4.5

Grails

4

Wicket

3.5

Play

3

Struts

2.5

Spring MVC

2



DOWNLOAD THE PDF