Inhalt | Abbildung | Source | SCWCD | |||
|< | < | > | >| | Generated by CoCoDiL |
Alles was kein JSP Element ist ein Template Text. Templates können jede Art von Text sein: HTML,WML, XML oder einfacher Text. Auch wenn JSP fast immer im Zusammenhang mit HTML gebraucht wird, basiert JSP nicht auf HTML. Der Template Text wird so wie er ist, dem Browser mitgegeben. Der Template Text ist immer der statische Teil einer JSP, er wird mit den dynamischen Teil (den JSP Elementen) gemischt und das Ergebnis wird als Response Stream weitergereicht.
Möchte man ein JSP Element darstellen, ohne dass es interpretiert wird, so geht dies durch durch quoten
Kommentare
Kommentare dienen nur der Dokumentation und werden folgendermassen gebildet
JSP Kommentare können nicht ineinander verschachtelt werden.
Dieser Kommentar wird nicht in die HTML generierte Seite eingebaut. Möchte man in die HTML generierte Seite einen Kommentar einbauen, so kann man dies als Template Text machen.
<!-- Dies ist ein Html Kommentar -->
Direktive
Die JSP Maschine übersetzt eine JSP Seite in ein Servlet. Mit den Direktiven kann man der JSP Maschine Anweisungen geben.
Es gibt 3 Arten von Direktiven:
Dies sagt der JSP Maschine, dass Java als Skriping Elemente eingebunden wird.
An dieser Stelle wird die Datei copyright.html eingebunden.
Zusammenfassend lässt sich sagen:
Deklarationen
Deklarationen ermöglichen es Java Variablen oder Methoden zu definieren, und zu initialisieren Deklarationen beginnen mit <%! und endet mit %>. Es kann jede mögliche Java Code Definition beinhalten.
Beachte dass in Java jedes Statement mit einem Semikolon abgeschlossen wird. Ansonssten weir ein Fehler eingebunden.
Skriplets
Skriplets sind Java Code Fragmente die in JSP Seiten eingebunden werden.
Das Skriplet wird jeweils ausgeführt, sobald eine Anfrage an das Servlet erfolgt. Ein Skriplet beginnt mit <% und endet mit %>. Dazwischen stehen ein oder mehrere Java-Statements. Beachte dass die Anweisungen mit einem Semikolon abgeschlossen werden müssen.
Expressions
Expressions sind Java Ausdrücke, deren Auswertung in die Ausgabe eingebunden werden. Beispiele:
Es ist zu beachten das im Gegensatz zu den Skriplets, Ausdrücke nicht mit einem Semikolon abgeschlossen werden. Ausdrücke beginnen mit <%= und enden mit %>.
Hier einige Beispiele die keine Ausdrücke sind:
<%= aBool; %> | Ein Ausdruck wird nicht mit einem Semikolon beendet |
<%= int i=20 %> | Man kann in einem Ausdruck keine Variable oder Methode deklarieren |
<%= sBuff.setLength(12) %> | Die Methode gibt keinen Wert zurück |
Die Auswerung eines Ausdrucks muss kein String sein, aber in einen String konvertiert werden können.
Erkennt die JSP Maschine dies nicht schon zur Übersetzungszeit, so wird bei der Auswertung der Anfrage
ein ClassCastException ausgelöst.
Aktionen sind Anweisungen an die JSP Maschine, die zur Laufzeit ausgeführt werden. Es gibt zwei Arten von Aktionen.
Zum einen dijenigen mit dem Prefix jsp, z.B: <jsp:include page="neAndereJsp.jsp" />; Dies sind die sogenannten Standard Actions. Custom Actions haben einen anderen Prefix als jsp.
Im Unterschied zu den anderen JSP-Elementen wie Direktiven und Skriptelemente wird für Aktionen nur noch die XML-Syntax genommen.
Innerhalb des Rumpfes können beispielweise Kindelemente, die Paramter an die Aktion übergeben, enthalten sein, oder auch Template-Daten, auf deren Ausgabe die Aktion in irgendeiner Form Einfluss nimmt.
Beispiel mit Paramterübergabe:
Kommt die Aktion ohne Rumpf aus so kann die Syntax auf
verkürzt werden.
Standard Custom Actions müsssen nicht extra deklariert werden. Eine Custom Standard Action benötigt eine taglib Direktive. Die Taglib Direktive ordnet dem Prefix eine TagLibDescription Datei zu. Innerhalb einer TLD-Datei wird dem Aktionsname eine Klasse zugeordnet. Diese Klasse ist für die Ausführung der Aktion notwendig.
Die Expression Language wurde mit der neuen JSP 2.0 Definition eingeführt. Mit der EL ist es einfacher die dynamische Teile in die JSP einzubauen. Mit Hilfe von EL Ausdrücken können insbesondere Daten einfacher abgefragt werden, die in JavaBeans gespeichert sind. Gibt es in einer JavaBean beispielsweise ein Objekt teilnehmer mit einer Eigenschaft nachname, kann ein Wert einfach mit ${teilnehmer.nachname} verwendet werden.
Man kann auch sehr einfach auf Elemente innerhalb einer Collection zugreifen z.B ${kurs.teilnehmer[0].nachname}
Außerdem sin diese Ausdrücke für die Bestimmung von Attributwerten in Aktionen einsetzbar, wenn diese erst zur Laufzeit ermittelt werden sollen.
JSP Tag Type | Kurze Beschreibung | Tag Syntax |
Directive | Spezifiziert zur Übersetzugszeit Anweisungen an die JSP Maschine | <%@ Directives %> |
Deklaration | Deklariert und Definiiert Methoden und Variablen | <%! Java Deklerations %> |
Scriplet | Ermöglicht es Java Code in JSP einzufügen | <% Some Java Code %> |
Expression | Wird ausgeführt und die Auswertung in die Ausgabe eingefügt | <%= Code %> |
Standard Actions | Enthält Laufzeit Anweisungen an JSP Maschine | |
Custom Actions | Laufzeit Anweisungen an JSP Maschine aus einzubindender Bibliothek | |
Expression Language Elemente | Spezielle Sprache. Auswertung wird in Ausgabe eingefügt | ${ ein EL-Ausdruck } |
Comment | Wird nicht ausgewertet | <%-- Any Text --%> |
Inhalt | Abbildung | Source | SCWCD | |||
|< | < | > | >| | Generated by CoCoDiL |