**Dies ist eine alte Version des Dokuments!** ----
====== How-To: Eigene Tags in der Suchmaske hinzufügen ====== **Problem:** Die vorhandenen Tags und ihre Optionen reichen nicht aus, um dynamisch den richtigen HTML-Code zu generieren. **Lösungsansatz:** Neue Tags können via Java hinzugefügt werden und anschließend bei SimpleServer/Tomcat registriert werden. **Vorteile:** * Keine Einschränkungen in der Umsetzbarkeit von dynamisch generierten Inhalten **Nachteile:** * Java-Kenntnisse erforderlich. **Autor:** Benjamin https://github.com/benjamin4ruby ===== Download ===== * Ein Beispiel der Umsetzung befindet sich unter contrib/crawler-thumbnails. ===== Anleitung ===== Angenommen, Sie möchten folgenden Tag in ihren JSPs benutzen: <code xml> <p><my_tag:helloworld/></p> </code> Dafür erstellen wir eine Klasse ''HelloworldTag'' im package ''some.example''. (Der name der Klasse wird durch den Tagnamen festgelegt. <my_tag:hello_world/> wäre Klasse ''World'' im package ''some.example.hello'') <code java> package some.example; import net.sf.regain.RegainException; import net.sf.regain.util.sharedtag.PageRequest; import net.sf.regain.util.sharedtag.PageResponse; import net.sf.regain.util.sharedtag.SharedTag; public class HelloworldTag extends SharedTag { public void printEndTag(PageRequest request, PageResponse response) throws RegainException { response.print("Hello, <span class=\"highlight\">World</span>!"); } } </code> Jetzt kompilieren wir diese Klasse mit der verwendeten Regain-Version: javac -classpath path/to/build/regain.jar src/some/example/HelloworldTag.java Das weitere Vorgehen hängt davon ab, ob die Desktop- oder Server-Version verwendet wird. (Natürlich funktioniert auch beides). ==== Desktop-Suche ==== (benötigt Version 1.7.9 oder höher) Damit die Desktop-Suche funktioniert, muss der Tag-Namespace ("my_tag") unter [[de:config:desktopconfiguration.xml]] hinzugefügt werden: <code xml> <!-- Register namespaces for Simple Server --> <simple_register_namespace> <!-- Default namespaces: search, config, status --> <namespace name="search">net.sf.regain.search.sharedlib</namespace> <namespace name="config">net.sf.regain.ui.desktop.config.sharedlib</namespace> <namespace name="status">net.sf.regain.ui.desktop.status.sharedlib</namespace> <namespace name="my_tag">some.example</namespace> </simple_register_namespace> </code> Damit die generierte .class-Datei geladen wird, können wir sie entweder der regain.jar hinzufügen (wenn Sie sie selbst [[de:project_info:building_regain]]), oder in als my_tag.jar in den ''web/taglib''-Ordner stecken. jar c0f my_tag.jar some/example/*.class ==== Server-Suche ==== ===== Offene Punkte ===== Ideen zur Weiterentwicklung oder bekannte Bugs. ===== Siehe auch ===== * [[:de:howto]] - Übersicht über alle How-Tos * https://github.com/benjamin4ruby/java-thumbnailer - Thumbnails der Dateien erstellen und anzeigen