Clarification needed about Vaadin apps


I am a newbie and still struggling to understand how well vaadin fits to my needs.

I am looking forward to convert my existing java/jsp based app to use vaadin.

So, here is the question based on what I understood reading the Vaadin book

In my entire web app there will be only and only one class which will be extending Application?

Typically yes. However, there is no limit to this and you can have several Applications in one web application (war) mapped to different URIs. Vaadin uses a servlet and a new instance of an Application is created and initialized for every new user session.

Within a single application you compose the application UI from components and they can communicate using events and listeners (much like in a Swing desktop application). If you split your application into seprate smaller applications, the communication between them has to use some other mechanisms.

Thanks that was helpful…

Here is a follow up question:

So say I have to design a web application using Vaadin and my app has two pages.

  1. a home page index.html : on this page i have a vaddin link component which opens a popup to add a email id for subscription to the site.

  2. there is another page in the app say register.html . This page is supposed to register details of a person who wants to buy something. So i will be embedding a vaddin form in this page.

Now, in this scenario how the Vaddin stuff should be implemented? Should there be only a single class extending application and both the pages should somehow route to this class and generate the vaadin form based on which page user is accessing or there should be two separate classes extending Application and mapped to two different urls in the web.xml

There could be two separate Vaadin applications for the use case you describe, and you could just rely on plain-old-web-links between them. That is a feasible approach if your applications do not have to change any or only little information.

The other way would be to have the same application embedded on both of the pages and just change the UI content (completely) depending on the page user is at. This might be best to trigger with parameters or URI fragments.

Embedding is easiest by copying the source code from the generated application page into the html page you need it. That is what has been done in the Uilder’s login page:
(sorry, actually requires invitation at this time to log in, but you get the idea how embedding works in practice.)

Also, if you haven’t yet, please check out the instruction to embed a Vaadin app on a jsp page:
. A bit old article, but should still apply.

this jsp page seems to be old now due to using it mill toolkit stuff… is there a newer version solving my issue?