Vaadin a Spring Boot – nový projekt

Vytvořením nového projektu se Spring Boot a Vaadinem jsem se zabýval již v tomto příspěvku. Vaadin jde ale mílovými kroku kupředu a to co platilo pro Vaadin 8 již pro Vaadin 10 neplatí. Pokud si projekt necháte vygenerevat z STS (File -> New -> Spring Starter Project) a spustíte jej dostanete tento výpis (na localhost:8080):

Could not navigate to ''
Reason: Couldn't find route for ''

Available routes:
This detailed message is only shown when running in development mode.

Řešením pro Vaadin 8 bylo vytvoření UI třídy (extendovala UI a měla anotaci @SpringUI) a případně několika View (třídy s anotací @SpringView). Vaadin 10 používá anotaci @Route, která zhruba řečeno nahrazuje View. @Route (nebo @Route("")) nahrazuje výchozí (hlavní) View s názvem „“.
Ve vygenerovaném projektu je jediná třída s anotací @SpringBootApplication, která slouží jako vstupní bod aplikace. Vytvoříme si další třídu (bude extendovat VerticalLayout), která bude mít anotaci @Route. V konstruktovu vytvoříme Label a Button a přidáme je do layoutu.

import java.time.LocalTime;

import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.html.Label;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.Route;

@Route
public class MainView extends VerticalLayout {

	public MainView() {
		Label label = new Label("Hello World!");
		Button button = new Button("Click me",
				e -> add(new Label("Clicked: " + LocalTime.now())));
		add(label, button);
	}
}

Výsledek po spuštění:

Napsat komentář