JSP Tag Files in der Preview verfügbar machen

Marsupilami
I'm new here
5 1 1,149

Man kann selbstgeschriebene JSP Tag Files in der Preview des First Spirit Servers verfügbar machen. Dazu lagert man die Tag Files aus, indem man sie in eine Java Archiv Datei packt. Das hat den zusätzlichen Vorteil, dass man sie wiederverwenden kann (siehe http://download.oracle.com/docs/cd/E17477_01/javaee/5/tutorial/doc/bnamu.html ). Hier als abstraktes Beispiel der Tag Library Descriptor:

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd ">
  <tlib-version>1.0</tlib-version>
  <short-name>default namespace prefix for this library</short-name>
  <uri>urn:a URI that uniquely identifies the tag library</uri>
  <tag-file>
      <name>name of tag file</name>
      <path>/META-INF/tags/example.tag</path>
  </tag-file>
</taglib>

Die Verzeichnisstruktur des Archivs sieht dann folgendermaßen aus:

/META-INF/example.tld

/META-INF/tags/example.tag

Die Taglib kann dann als Web-Resource in einem First Spirit Modul verwendet werden. Dazu braucht man:

  • eine web.xml
  • eine module.xml
  • die Taglib

Die web.xml ist ziemlich einfach gestrickt:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
  <display-name>the name of this web-app</display-name>
  <discription>write whatever you want</discription>
</web-app>

In der module.xml konfiguriert man, wo die Orte, an denen die Resourcen gefunden werden können:

<!DOCTYPE module SYSTEM ../../server/module.dtd>
<module>
    <name>display name</name>
    <version>version numer</version>
    <description>describes the purpose</description>
    <components>
        <web-app>
            <name>name</name>
            <description>description</description>
            <web-xml>web.xml</web-xml>
            <web-resources>
                <resource>lib/example.jar</resource>
            </web-resources>
        </web-app>
    </components>
</module>

In diesem Beispiel soll die web.xml im Wurzel-Verzeichnis gefunden werden und die Web-Resource (das example.jar) im Verzeichnis lib. Das gebaute example.fsm hat dann folgende Struktur

/web.xml

/lib/example.jar

/META-INF/module.xml

Dieses FSM auf dem Server installieren (Admin-GUI -> Server -> Eigenschaften -> Module).

Nun muß die neue Webapp noch den gewünschten Projekten in der Preview verfügbar gemacht werden. Dazu in der Admin-GUI unter Web-Komponenten die/das neu hinzugefügte Lib/Modul im Tab Preview auswählen. Evtl. benötigt man noch weitere Module wie FS-INTEGRATION, falls man in den JSP Tag Files JSTL-Funktionalität benutzt (siehe auch https://community.e-spirit.com/community/developer/blog/2010/07/08/jstl-in-firstspirit-preview-or-st... ).

Jetzt muß man noch den zu verwendenden Aktiver Web-Server auswählen, z.B. den InternalJetty. Falls nicht bereits installiert und aktiviert, muss eben jenes getan werden. Bei Änderungen muss man dem verwendeten Webserver diese erst noch mitteilen, indem man ihn aktualisiert (Button Aktualisieren).

Innerhalb einer JSP wird die Taglib dann folgendermaßen inkludiert:

<%@ taglib prefix="teaser"  uri="urn:example" %>

Getestet auf FS 4.1.51

1 Comment