Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:howto:add_custom_tag

====== Unterschiede ====== Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Both sides previous revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:howto:add_custom_tag [2011/08/09 11:19]
benjamin
de:howto:add_custom_tag [2024/09/18 08:32] (aktuell)
Zeile 19: Zeile 19:
 **Autor:** **Autor:**
  
-Benjamin https://​github.com/​benjamin4ruby+Benjamin ​Pick https://​github.com/​benjaminpick
  
 ===== Download ===== ===== Download =====
Zeile 59: Zeile 59:
  
 ==== Desktop-Suche ==== ==== Desktop-Suche ====
 +//​(benötigt regain 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: Damit die Desktop-Suche funktioniert,​ muss der Tag-Namespace ("​my_tag"​) unter [[de:​config:​desktopconfiguration.xml]] hinzugefügt werden:
  
 <code xml> <code xml>
-  ​<!-- Register namespaces for Simple Server --> +<!-- Register namespaces for Simple Server --> 
-  <​simple_register_namespace>​ +<​simple_register_namespace>​ 
-    <!-- Default namespaces: search, config, status --> +  <!-- Default namespaces: search, config, status --> 
-    <​namespace name="​search">​net.sf.regain.search.sharedlib</​namespace>​ +  <​namespace name="​search">​net.sf.regain.search.sharedlib</​namespace>​ 
-    <​namespace name="​config">​net.sf.regain.ui.desktop.config.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="​status">​net.sf.regain.ui.desktop.status.sharedlib</​namespace>​ 
- +   ​<​namespace name="​my_tag">​some.example</​namespace>​ 
-    ​<​namespace name="​my_tag">​some.example</​namespace>​ +</​simple_register_namespace>​
-  </​simple_register_namespace>​+
 </​code>​ </​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.+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   jar c0f my_tag.jar some/​example/​*.class
Zeile 80: Zeile 80:
 ==== Server-Suche ==== ==== Server-Suche ====
  
 +Zuerst müssen wir die neuen Tags deklarieren. Wir erstellen eine Datei ''​web/​taglib/​mytag.tld''​ (Name wählbar). (Siehe ''​web/​server/​regain-search.tld''​ als Template.)
 +
 +<code xml>
 +<?xml version="​1.0"​ encoding="​UTF-8"​ ?>
 +<​!DOCTYPE taglib PUBLIC "​-//​Sun Microsystems,​ Inc.//DTD JSP Tag Library 1.1//​EN"​ "​http://​java.sun.com/​dtd/​web-jsptaglibrary_1_1.dtd">​
 +
 +<​taglib>​
 +  <​tlibversion>​1.0</​tlibversion>​
 +  <​jspversion>​1.1</​jspversion>​
 +  <​shortname>​my_tag</​shortname>​
 +  <​info>​Example Taglib</​info>​
 +  <tag>
 +    <​info>​
 +      Shows "​Hello,​ World!"​
 +    </​info>​
 +    <​name>​helloworld</​name>​
 +    <​tagclass>​some.example.server.HelloworldTag</​tagclass>​
 +    <​bodycontent>​empty</​bodycontent>​
 +  </​tag>​
 +</​taglib>​
 +</​code>​
 +
 +Dann fügen wir diese Deklaration der JSP hinzu (ganz oben):
 +
 +<code xml>
 +<​%@taglib uri="​taglib/​mytag.tld"​ prefix="​my_tag"​ %>
 +</​code>​
 +
 +Wir müssen noch eine Wrapper-Klasse schreiben (''​some/​example/​server/​HelloworldTag.java''​):​
 +
 +<code java>
 +package some.example.server;​
 +
 +import net.sf.regain.util.sharedtag.taglib.SharedTagWrapperTag;​
 +
 +public class HelloworldTag extends SharedTagWrapperTag {
 +  public HelloworldTag() {
 +    super(new some.example.HelloworldTag());​
 +  }
 +}
 +</​code>​
 +(Kompilieren am besten mit den original-Sourcen von Regain ... ant runtime-server und dann build/​classes und build/​included-lib-classes/​common als Classpath verwenden.)
  
-===== Offene Punkte =====+Jetzt muss Regain nur noch (beide) Klassen laden. Entweder in die .war packen, oder nach dem deployen nach ''​WEB-INF/​classes''​ (some/​example/​...) oder nach ''​WEB-INF/​lib''​ (als my_tag.jar) kopieren. Der Servlet-Container muss neu gestartet werden.
  
-Ideen zur Weiterentwicklung oder bekannte Bugs. 
  
  
de/howto/add_custom_tag.1312881540.txt.gz · Zuletzt geändert: 2024/09/18 08:32 (Externe Bearbeitung)