Jelly: XML-Scripting mit vielen Komponenten

Jetzt zu den inneren Abläufen von Jelly, zum Aufbau einer persönlichen Bibliothek mit Jelly Tags. Hier wird ein Beispiel-Tag verwendet, der unseren Fließtext auf Groß- oder Kleinbuchstaben einstellt. Jelly Tags werden in den in Tabelle A aufgeführten Tag-Bibliotheken versammelt. Tag-Bibliotheken werden unter Jelly als Namensraum registriert.


Dieses Beispiel macht die zentrale Tag-Bibliothek im voreingestellten Namensraum verfügbar und unsere persönliche Bibliothek im Namensraum für Groß- und Kleinschreibung (case). CaseTagLibrary muss die Klasse org.apache.commons.jelly.TagLibrary erweitern und die Methode registerTag für jeden verfügbaren Tag aufrufen.


Nunmehr steht ein Tag zur Verfügung: case. Der CaseTag muss org.apache.commons.jelly.TagSupport erweitern. TagSupport ist als abstrakt deklariert und verlangt die Implementierung von doTag (XMLOutput output) auf. Nach dem Aufrufen sämtlicher Setter wird diese Methode aufgerufen. Für den Case-Tag sucht man nach einem Attribut. Im Falle dieser Tag-Klasse wird eine Art von Setter-Routine wie folgt definiert:


Nun zum Herzstück der CaseTag-Klasse, der doTag-Methode. Zunächst muss man sich vergewissern, ob der Nutzer das erfragte Attribut eingegeben hat (Listing D).

Wenn type auf upper oder lower gesetzt wurde, kann man sofort loslegen. Der Case-Tag ist so angelegt, dass er den Inhalt des Tags nimmt und den Text entweder als Groß- oder als Kleinbuchstaben darstellt. Man greift auf den Text zu und konvertiert ihn (Listing E).

Der Case-Tag ist jetzt fertig. Der komplette Quellcode findet sich in CaseTag.java (Teil des Downloads). Der Tag kann nun beispielsweise so verwendet werden:


Für das komplette Beispiel, siehe case.jelly (ebenfalls im Download enthalten).

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Jelly: XML-Scripting mit vielen Komponenten

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *