Navigation
Um eine View aufrufen zu können, braucht diese einen Pfad, welcher auch als Route bezeichnet wird.
- Zuerst mĂ¼ssen Sie das Root-Element der View auswählen
- Danach unter Routing > Route einen beliebigen Pfad angeben. (Kann auch ein leerer String sein)
Hinweis:
- Jede Route muss unique sein. Es können nie gleichzeitig mehrere Views mit der gleichen Route existieren
Navigieren zu einer anderen View
Um zu einer anderen View zu navigieren, gibt es mehrere Möglichkeiten.
Navigation mit RouterLinks
- Ziehen Sie einen RouterLink auf die View
- Klicken Sie in den Properties auf NavigationTarget
- Im folgenden Dialog können Sie nach Ihrer View suchen, zu der dieser Link navigieren soll
Serverseitige Navigation
Der Server kann auch eine Navigation auslösen. Um das zu erreichen können Sie folgendes machen:
- Ziehen Sie einen Button auf die View
- Doppelklicken Sie den Button
Geben Sie danach folgenden Code ein:
UI.getCurrent().navigate(OtherView.class)
Complexe Navigation
Manchmal mĂ¼ssen auch verschiedene Information an die aufzurufende View weitergegeben werden. Dazu können die folgenden Code-Snippets benutzt werden:
// Es können Datentypen wie z.B. String Ă¼bergeben werden UI.getCurrent().navigate(OtherView.class, "Hallo Welt");
In OtherView.class muss das HasUrlParameter<String> Interface implementiert werden
Um dort jetzt den Parameter zu bekommen, muss folgende Methode implementiert werden:
@Override public void setParameter(final BeforeEvent event, final String parameter) { System.out.println("Parameter was " + parameter); }
Es können unter anderen auch Query Parameter Ă¼bergeben werden. Mehr dazu kann hier nachgelesen werden: https://vaadin.com/docs/flow/routing/tutorial-router-url-parameters.html
Es können aber auch mit Hilfe des RapidClipse Frameworks ganze Objekte Ă¼bergeben werden.
Navigation.To(OtherView.class) .withParameter("myData", myData) .navigate();
Dazu muss in OtherView.java folgendes implementiert werden:
@NavigationParameter private MyDataType myData; @Override public void navigationParametersUpdated() { System.out.println("myData is now available!"); }
Hinweis:
- navigationParametersUpdated() muss nicht implementiert werden.
- Mit .withParameter() kann ein beliebiger Datentyp Ă¼bergeben werden.
XDEV Software Corp. - One Embarcadero Center, San Francisco, CA 94111, US
Copyright © 2015. XDEV Software Corp. All rights reserved.