Zum Hauptinhalt springen

Routable Apps

ChatGPT öffnen

Routing in webforJ ist ein optionales Werkzeug. Entwickler können zwischen der webforJ-Routing-Lösung oder einem traditionellen Modell mit Frame-Manipulation und ohne tiefes Linking wählen. Um Routing zu aktivieren, muss die @Routify-Annotation auf der Ebene einer Klasse angewendet werden, die App implementiert. Dies gewährt webforJ die Befugnis, den Browserverlauf zu verwalten, auf Navigationsevents zu reagieren und die Komponenten der App basierend auf der URL zu rendern.

Info

Um mehr über den Aufbau von UIs mit Frames, integrierten und benutzerdefinierten Komponenten zu erfahren, besuchen Sie den Abschnitt Building UIs.

Zweck der @Routify-Annotation

@Routify ermöglicht dem Framework, Routen automatisch zu registrieren, die Sichtbarkeit von Frames zu verwalten und Routing-Verhalten wie Debugging und Frame-Initialisierung zu definieren, wodurch dynamisches, flexibles Routing in der App ermöglicht wird.

Verwendung von @Routify

Die @Routify-Annotation wird auf der Klassenebene der Haupt-App-Klasse angewendet. Sie gibt die Menge von Paketen an, die auf Routen gescannt werden sollen, und verwaltet andere routingbezogene Einstellungen wie die Frame-Initialisierung und das Sichtbarkeitsmanagement.

Hier ist ein einfaches Beispiel:

@Routify(
packages = {"com.myapp.views"},
defaultFrameName = "MainFrame",
initializeFrame = true,
manageFramesVisibility = false,
debug = true
)
public class MyApp extends App {

@Override
public void run() {
// Anwendungslogik hier
}
}
Routify Standardkonfigurationen

Die @Routify-Annotation kommt mit angemessenen Standardkonfigurationen. Es wird davon ausgegangen, dass das aktuelle Paket, in dem die App definiert ist, zusammen mit allen seinen Unterpaketen, auf Routen gescannt werden soll. Außerdem wird davon ausgegangen, dass die App standardmäßig nur einen Frame verwaltet. Wenn Ihre App dieser Struktur folgt, ist es nicht erforderlich, der Annotation benutzerdefinierte Konfigurationen bereitzustellen.

Schlüsselfunktionen von @Routify

1. packages

Das Element packages definiert, welche Pakete auf Routendefinitionen gescannt werden sollen. Es ermöglicht die automatische Entdeckung von Routen ohne manuelle Registrierung und optimiert den Prozess zur Erweiterung des App-Routing-Systems.

@Routify(packages = {"com.myapp.views"})

Wenn keine Pakete angegeben sind, wird das Standardpaket der App verwendet.

2. defaultFrameName

Dieses Element gibt den Namen des Standardframes an, den die App initialisiert. Frames stellen Top-Level UI-Container dar, und diese Einstellung steuert, wie der erste Frame benannt und verwaltet wird.

@Routify(defaultFrameName = "MainFrame")

Standardmäßig, wenn nicht ausdrücklich angegeben, wird der Wert auf Routify.DEFAULT_FRAME_NAME gesetzt.

3. initializeFrame

Das Flag initializeFrame bestimmt, ob das Framework den ersten Frame automatisch initialisieren soll, wenn die App startet. Das Setzen dieser Option auf true vereinfacht die initiale Frame-Einrichtung.

@Routify(initializeFrame = true)

4. manageFramesVisibility

Dieses Element steuert, ob das Framework die Sichtbarkeit der Frames während der Navigation automatisch umschalten soll. Wenn aktiviert, zeigt die übereinstimmende Route automatisch den entsprechenden Frame an, während andere ausgeblendet werden, um eine klare und fokussierte UI zu gewährleisten. Diese Einstellung ist nur relevant, wenn Ihre App mehrere Frames verwaltet.

@Routify(manageFramesVisibility = true)

5. debug

Das Flag debug aktiviert oder deaktiviert den Routing-Debug-Modus. Wenn aktiviert, werden Routing-Informationen und Aktionen in der Konsole zur einfacheren Fehlersuche während der Entwicklung protokolliert.

@Routify(debug = true)
Router-Debug-Modus und webforJ-Debug-Modus

Wenn der Router-Debug-Modus auf true gesetzt ist, der webforJ-Debug-Modus jedoch auf false gesetzt ist, werden keine Debugging-Informationen in der Konsole angezeigt.