Over a million developers have joined DZone.

Preserving State Between Refreshes

DZone's Guide to

Preserving State Between Refreshes

· Java Zone ·
Free Resource

Delivering modern software? Atomist automates your software delivery experience.

Last week, we had a look at the new Vaadin 7 Root that takes the place of the old version 6 Window. Though this evolution cleans window management in version 7, it brings a change that can have important consequences for those unaware of it.

In Vaadin 7, state is not kept between refreshes, whereas in v6, it was. Anyway, this is only the default behavior, and the Vaadin team provides us with the mean to do as we please. The only thing to do is to get a handle on the Application instance behind the root and call the preserveRoot(boolean) method, like so:

public class Vaadin7Root extends Root {
    public void init(WrappedRequest wrapped) {

You can find here the sources of a little example application that let us play with this behavior. Let's try some things:

  1. Call the URL with a named fragment beneath it (like #test). The page displays it right of the URI fragment label.
  2. Change the fragment in the adress bar (like #testchanged) and refresh the page. The page should display the new URI fragment in the page.
  3. Now, check the Preserve root checkbox. Change the fragment for the second time (like #testsecond) and behold, the page still displays the "testchanged" value.

Whatever you want the behavior to be, Vaadin provides it :-)

Start automating your delivery right there on your own laptop, today! Get the open source Atomist Software Delivery Machine.


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}