Creating a Server-Side Component

Typical server-side Vaadin applications use server-side components that are rendered on the client-side using their counterpart widgets. A server-side component must manage state synchronization between the widget on the client-side, in addition to any server-side logic.

Basic Server-Side Component

The component state is usually managed by a shared state, described later in "Shared State".

public class MyComponent extends AbstractComponent {
    public MyComponent() {
        getState().setText("This is MyComponent");

    protected MyComponentState getState() {
        return (MyComponentState) super.getState();