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