Inhalt Abbildung PDF Source SCWCD
 |<    <     >    >|  Generated by CoCoDiL

8.2 Direktiven

Write JSP code that uses the directives: (a) 'page' (with attributes 'import', 'session', 'contentType', and 'isELIgnored'), (b) 'include', and (c) 'taglib'.

8.2.1 Page Direktive

Eine page Direktive informiert die JSP Maschine über Eingenschaften einer JSP Seite. Diese Eingenschaft betrifft nicht nur die aktuelle Seite, sondern auch die Seiten die mit der include Direktive eingebunden werden.

In der JSP 2.0 Spezifikation gibt es insgesamt 13 verschiedene Attribute, es werden lediglich nach der Objektive die folgenden Attribute für die Zertifizierung benötigt:

AttributnameBeschreibungDefault Werte
importEine Liste von Java Klassen und Packages, die in der JSP Seite gebraucht werdenKeine Default Werte
sessionFalls true sollte die Seite Teil einer Session sein. Bei false ist zu dieser Seite keine implizite session Variable verfügbartrue
contentTypeEnthält den Mime Type und character encoding der Ausgabetext/html bzw text/xml
isELIgnoredfalls true wird ein ${code} als normaler Text interpretiert und nicht ausgewertetentsprechend Datei web.xml sonst false

Beispiele:

Das import Attribut ist das einzigste Attribut innerhalb einer page Direktive die in einer Translation Unit mehrfach vorkommen können. Eine Translation Unit bezieht sich auf die akuelle JSP Seite und dijenigen die mit der include Direktive eingebunden werden.

8.2.2 Inlcude Direktive

Mit der Include Direktive wird zur Übersetzungszeit der JSP Seite in ein Servlet eine Datei eingebunden. Die include Direktive hat genau ein Attribut, nämlich file und enthält den Pfad zu einer Datei. Die Dateien die mit Include eingebunden werden gehören zu einer Translation Unit, d.h die aktuelle und eingebundene Dateien werden in ein Servlet übersetzt.

8.2.3 TagLib Direktive

Wird benötigt um custom Tags zu definieren

In der Datei web.xml kann man den Pfad zur taglib Beschreibungs datei spezifizieren.

Die Taglib-URI muss ein eindeutiger Name für die Tag Lib Bibliothek sein. Man kann auch den Umweg über die web.xml Datei umgehen und direkt den Pfad zur tld.Datei in der taglib Direktive angeben. Allerdings verliert man dadurch die Flexibilität die tld-Datei zu verschieben oder umzubenennen.

8.3 JSP als XML Dokumente

Write a JSP Document (XML-based document) that uses the correct syntax.

Es besteht die Möglichkeit JSP Seiten teilweise oder vollständig als XML-Dokumente anzulegen. Eine JSP Seite die vollständig als XML-Dokument angelegt ist (und damit wohlgeformt ist), nennt man JSP Dokument

8.3.1 Identifikation von JSP-Dokumenten

Der Servlet Container erkennt i.a. nicht automatisch ob es sich um eine normale JSP Seite oder um ein JSP-Dokument handelt. Folgende Verfahren zur Indentifikation von JSP-Dokumenten gibt es:

8.3.2 jsp:root Element

Ein JSP-Dokument beginnt i.a. nicht mit dem typischen xml Kopf <?xml version="1.0" ?> Wird ein jsp:root Element verwendet, so muss das oberste Element xml sein. Es hat zwingend das Attribut version, dessen Werte "2.0" oder "1.2" sein musss. Ausserdem wird es benutzt um Namensräume zu deklarieren.

Die Namespaces werden verwendet um Tag-Bibliotheken der Aktionen zu deklarieren.

8.3.3 Kommentare

Es gibt keine spezielle Tags für Kommentare um einen Kommentar von einer JSP-Seite umzuwandeln sollte man einen normalen xml Kommentar verwenden.

8.3.4 Template Text

Template Texte werden durch das Element jsp:text deklariert. Man muss aufpassen dass durch den Template Text die XML Syntax nicht verletzt wird.

Beispiel eines ungültigen Template Textes

Das > Zeichen ist innerhalb eines xml-Elements nicht erlaubt. Ersetze in diesem Fall das > Zeichen durch gt

8.3.5 Skriptelemente

Deklarationen

Es wird das Element jsp:declaration verwendet. Dieses Element hat keine Attribute

Skripte

Es wird das Element jsp:scriptlet verwendet. Dieses Element hat keine Attribute

Expressions

Es wird das Element jsp:expression verwendet. Dieses Element hat keine Attribute

8.3.6 Direktiven

Bei Page Direktiven wird das Element jsp:directive.page verwendet. Bei Include Direktiven wird das Element jsp:directive.include verwendet.

Beispiel:

Eine Namensraumdeklaration kann auch mitten in einem Element stehen, und gilt dann für dieses Element und den untergeordneten Elementen.

Inhalt Abbildung PDF Source SCWCD
 |<    <     >    >|  Generated by CoCoDiL