JSF vs. Vaadin?

I am looking for people with both JSF and Vaadin experience, for an upcoming white paper comparing the technologies.

Do you have experience with both JSF and Vaadin, and would you like to discuss these experiences with me?
If so, please post your comments in this thread or send me an email at vaadin.com.

Furthermore, which topics do you think should be compared in such an article? What are the pros and cons of JSF and how do they compare to those of Vaadin? I’d be very happy to hear your thoughts on the matter.

I’m looking forward to your input! :slight_smile:

Hi Marlon,

the last years I do a lot of JSF development (at least three different web projects for my customers - all still in development, live, success full :grin: ), based on JSF 1.2 most the time I used Richfaces for nice looking Ajax webapps.

Until I learn Vaadin this was the best technology for doing this kind of fancy ajax web development … in my opinion!

But know … since I spend some time with Vaadin … I would use always Vaadin for any new project and never again JSF.

Some quick points:


  • xhtml Facelets Templates for declarative ui’s + some “coding” in the ui via c:if, c:foreach and stuff like this
  • standard request life cycle: … conversation, validation, apply action etc … so you have some defined “hooks” where you can place your logic
  • ui component binding to create components in java code works not so good like the Vaadin way


  • “transparent” Ajax Support for JSF (I never tried JSF 2.0 - which comes with build in support for ajax)
  • nice ui components
  • “reRender” to define the part which should update after a action must defined in the ui template, to do this via java is difficult
  • no layout manager


  • layouts
  • gwt technology for ui
  • I can do anything in java, no html, “no css” (for simple apps)
  • theme support
  • addons
  • missing widgets like filtered table

Currently I’m using Spring Tools Suite + Maven + JRebel … and it’s so easy to develop a Vaadin app … I love it :lol:


I would like to read about performance comparison, resource consumption, ability to extend (e.g. widgets).

I remember at least three interesting reads concerning JSF vs. Vaadin:



Development Expertise

Have fun :slight_smile:

Thanks all three of you for your responses! -_-

You list that as a pro, but do you think there are also cons to it? Or, more specifically:[list]
What do you think are the pros and cons of declarative UIs in JSF?
What do you think are the pros and cons of coding with the JSF Expression Language (EL) inside the facelets (.xhtml files)?


Do you think you could explain that to me in more detail? What do you think are the particularly hard or awkward parts there?

Would you have any examples you could share that highlight why it’s so easy? :slight_smile:

Thanks again for your reply and I look forward to your follow-up! -_-

At the beginning of an project declarative UI’s are cool … so you can create prototypes quick+fast. You have access to beans (data) via EL. You can write our own Faclets functions, mapped to static Java methods, using Spring DI … the sky is the limit g). But then when thinks become more “complex” (advanced use cases g) then pure java code will be better then do things in UI templates (c:if, rendered attribute, reRender stuff and so on). But in JSF you can always create a new component by yourself to avoid complex UI’s.

In JSF you have compent bindings like this:

<h:inputText id="foobar" binding="#{serverBean.foobar}"/>

With serverBean.getFoobar() you can create UIComponent’s like a InputText, add attributes etc. … like any other UI programming api.
With serverBean.setFoobar(UIComponent c) you have access to the JSF Component.

Sorry … no … I’m doing customer software projects as a freelancer … so the created software is “closed source”.

I will create a free blueprint example on github with the main components that’s make vaadin so easy for me :smiley:

Hope this helps a little bit

Kind regards

The worst thing on Vaadin is there is no ehcache integration.
Always making processing for each user is not good solution.
Vaadin team must implement caching mechanism for vaadin.

Everytime i refresh webpage , doing same operations again and again…
If online user increases much on server , server cpu consumption increase without any reason.

If they implement ehcache integration , it can compete with JSF.
But currently JSF is industrial standard and JSF is best for non AJAX pages.

If you are planing ajax based pages , vaadin is best.

Another problem is vaadin team can make client side caching something like @Cachable annotation.

Everytime someone clicking a simple button , sending server request.

Why always like that ? why no cache integration ???

on html5 , there is local storage , vaadin can use local storage for user’s requests.

This makes vaadin much much better…

Some people abandon from vaadin because of that reasons.

I like vaadin but vaadin requires some more vaadin team’s work…

For filtered table, I have used FilteringTable addon (https://vaadin.com/directory#addon/filteringtable), it worked well for me.

Well I am new to Vaadin and still testing out its functionalities.