Como compartir parametros entre clases login/home

Tengo una clase que extiende de UI, la que te genera por default vaadin:

protected void init(VaadinRequest vaadinRequest) {
    	WrappedSession session = vaadinRequest.getWrappedSession();
    	Navigator nav = new Navigator(this,this);
		Home h = new Home(session);
        nav.addView("home", h);
        VerticalLayout layout = new VerticalLayout();
        TextField name = new TextField("User:");
        Button button = new Button("Click");
        button.addClickListener(e -> {
        	vaadinRequest.getWrappedSession().setAttribute("user", name.getValue());
        	nav.navigateTo("home");
        });
        layout.addComponents(name, button);
        setContent(layout);
    }

ahora cuando doy click al boton se va a home: extiende de VerticalLayout e implementa View

public Home(WrappedSession w) {
		addComponent(new Label("Hola " + w.getAttribute("user") ));
	}

Lo cual muestra lo siguiente:
Hola null

Hola !! No deberias recuperar en una clase el atributo?
Yo lo realizo de la siguiente manera:
Usuario usuario = (Usuario) UI.getCurrent().getSession().getAttribute("usuario");
y “usuario” dispone de lo que necesito.
Saludos

El problema es que cuando creas una instancia de la clase Home
Home h = new Home(session);

En su contructor agregas el componente Label al VerticalLayout
addComponent(new Label("Hola " + w.getAttribute("user") ));

Ahí tratas de asignarle el valor del atributo user, en ese instante ese atributo es null ya que solo se le asigna valor después que haces clic en el botón.

button.addClickListener(e -> {
        	vaadinRequest.getWrappedSession().setAttribute("user", name.getValue());
        	nav.navigateTo("home");
        });

Y en ese momento ya la instancia de Home creó la instancia de Label con null.
Espero que se entienda,

Saludos