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í:
