Zum Hauptinhalt springen

Routable Apps

In ChatGPT öffnen

Das Routing in webforJ ist ein optionales Tool. Entwickler können zwischen der webforJ-Routing-Lösung oder einem traditionellen Modell mit Frame-Manipulation und ohne Deep Linking wählen. Um das Routing zu aktivieren, muss die @Routify-Annotation auf der Ebene einer Klasse, die App implementiert, angewendet werden. Dadurch erhält webforJ die Befugnis, den Verlauf des Browsers zu verwalten, auf Navigationsereignisse zu reagieren und die Komponenten der App basierend auf der URL zu rendern.

Info

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

Zweck der @Routify-Annotation

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

Verwendung von @Routify

Die @Routify-Annotation wird auf der Klasse der Haupt-App-Klasse angewendet. Sie gibt die Menge der Pakete an, die nach Routen durchsucht werden sollen, und verwaltet andere routingbezogene Einstellungen wie die Initialisierung von Frames und die Sichtbarkeitsverwaltung.

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 geht hier hin
}
}
Routify Standardkonfigurationen

Die @Routify-Annotation kommt mit angemessenen Standardkonfigurationen. Sie geht davon aus, dass das aktuelle Paket, in dem die App definiert ist, sowie alle seine Unterpakete nach Routen durchsucht werden sollen. Darüber hinaus geht sie davon aus, dass die App standardmäßig nur einen Frame verwaltet. Wenn Ihre App dieser Struktur folgt, ist es nicht erforderlich, der Annotation benutzerdefinierte Konfigurationen bereitzustellen.

Hauptbestandteile von @Routify

1. packages

Das Element packages definiert, welche Pakete nach Routendefinitionen durchsucht werden sollen. Es ermöglicht die automatische Entdeckung von Routen ohne manuelle Registrierung und vereinfacht den Prozess der 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 repräsentieren die obersten UI-Container, und diese Einstellung steuert, wie der erste Frame benannt und verwaltet wird.

@Routify(defaultFrameName = "MainFrame")

Standardmäßig, wenn nicht ausdrücklich angegeben, ist 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. Die Einstellung auf true vereinfacht die anfängliche Frame-Konfiguration.

@Routify(initializeFrame = true)

4. manageFramesVisibility

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

@Routify(manageFramesVisibility = true)

5. debug

Das debug-Flag aktiviert oder deaktiviert den Routing-Debug-Modus. Wenn aktiviert, werden Routing-Informationen und Aktionen in der Konsole protokolliert, um das Debugging während der Entwicklung zu erleichtern.

@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, werden keine Debugging-Informationen in der Konsole angezeigt.