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

10 Standard Aktionen

10.1 Die Aktion <jsp:useBean>

Given a design goal, create a code snippet using the following standard actions: jsp:useBean (with attributes: 'id', 'scope', 'type', and 'class'), jsp:getProperty, and jsp:setProperty (with all attribute combinations).

Eine Java Bean ist eine normale Java Klasse. Es gibt die Einschränkung, dass eine JavaBean ein parameterloser Konstruktor hat. Dies ermöglicht ein beliebiges Tool alleinig mit Wissen des Klassennamens die Java Bean zu instantiieren. Eine Java Bean hat Properties. Diese werden mit getter und setter Methoden gelesen bzw. definiert.

Das folgende Beispiel zeigt die Benutzung einer JavaBean.

Zunächst wird gesucht, ob es im Scope page ein Attribut mit dem Namen connection gibt. Falls es das Attribut nicht gibt, wird die Klasse com.myco.myapp.Connection instantiiert und mit dem Namen connection dem entsprechenden scope zugeordnet. Danach kann man mit dem Expression Language ${connection} auf die Instanz zugreifen.

Statt der Klasse kann man auch das beanName angeben. Allerdings ist es nicht möglich gleichzeitig das Attribut beanName und class anzugeben, aber mindestens eines der beiden Attribute muss angegeben sein. Bei Angabe des Attributs beanName erfolgt die Instantiierung über die Klasse java.bean.Beans mit der Methode instantiate() und den Wert von beanName als Argument.

Die Aktion <jsp:useBean> kann auch ohne eines der Attribute class oder beanName angewendet werden.

Es wird im scope page ein Bean gesucht, der die Klasse oder Interface "com.myco.myapp.Connection" erfüllt und der id connection zugeordnet. Wird dieses Bean nicht gefunden, so wird keines erzeugt.

AttributBeschreibung
idName der die JavaBean im angegebenen Scope identifiziert und zugleich SkriptVariablenname für die Referenz auf das Objekt.
scopeGeltungsbereich, in dem die Objektreferenz verfügbar ist. Vorgabe ist page
classVoll qualifizierter Klassenname
beanNameame einer Bean, wie er von der Methode instantiate() in der Klasse java.beans.Beans erwartet wird.
typebestimmt den Typ der Skriptvariablen unabhängig vom Typ der Implementierungsklasse. Als Typ kann die Klasse, eine Oberklasse der Klasse oder ein Interface, das die Klasse implementiert, angegeben werden. Vorgabe ist der Wert von Attribut class

10.2 Die Aktion <jsp:getProperty>

Die Aktion <jsp:getProperty> greift auf die Eigenschaften der vorher deklarierten JavaBean-Komponente zu. Das Ergebnis der Aktion wird, wenn nötig in einen String umgewandelt, in die Antwort eingefügt.Bei Objekten wird zur Umwandlung die toString Methode verwendet, primitive Datentypen werden direkt umgewandelt.

Syntax

NameBedeutung
nameName der Bean-Instanz, deren Eigenschaft interessiert. Muss dem Wert von id in jsp:useBean entsprechen
propertyName der Eigenschaft, die abgefragt werden soll

10.3 Die Aktion <jsp:setProperty>

Die <jsp:setProperty> Aktion kann die Eigenschaften einer JavaBean verändern. Dabei werden die Setter-Methoden der JavaBean verwendet. Die Deklaration mit <jsp:useBean> muss immer vorrausgehen.

Es gibt verschiedene Formen setProperty zu benutzen.

1. Es wird direkt der Wert der Property mit dem Paramter value übergeben.

2. Der Wert der Property wird aus den Paramtern der Anfrage (request) gelesen

3. Mehrere Properties auf einmal aus der Anfrage (request) lesen

Es wird über alle Parameter der Anfrage iteriert. Entspricht der Parametername einer Anfrage einer Property so wird diese gesetzt. Besteht der Wert einer Variable der Anfrage aus einem Leerstring so wird die Proporty nicht gesetzt.

AttributBeschreibung
nameName der Bean-Instanz, deren Eigenschaft bestimmt werden soll. Muss dem Wert von id in <jsp:useBean> entsprechen
propertyName der Eigenschaft, die gesetzt werden soll oder ein Wildcard für alle Eigenschaften
paramName eines Anfrage-Parameters
valueAttributwert, der zugeordnet werden soll

Beachte, daß die Attribute param und value nie gemeinsam benutzt werden.

Given a design goal, create a code snippet using the following standard actions: <jsp:include>, <jsp:forward>, and <jsp:param>.

10.4 Die Aktion <jsp:forward>

Diese Aktion leitet die Anfrage an eine andere Webressource innerhalb derselben Webanwendung weiter. Die Ausführung der aufrufenden Seite wird sofort beendet - Anweisungen dahinter werden ignoriert - und die Kontrolle geht auf die aufgerufene Ressource über. Schon gepufferte Daten werden vorher gelöscht. Wurde der Puffer schon einmal geleert, erzeugt die Weiterleitung danach eine IllegalStateException. Dabei wird das request-Objekt dem Wert des page Attributs entsprechend angepasst, die sonstige Daten werden von der aufrufenden Seite übernommen und können in der aufgerufenen Seite abgefragt werden. Die Aktion kann im Rumpf <jsp:param> Kindelemente enthalten, um Parameter an die andere Ressource zu übergeben.

Beispiel:

AttributBeschreibung
pagelokalisiert die einzuschliessende Ressource innerhalb der Webanwendung relativ zu akuellen Seite

10.5 Die Aktion <jsp:include>

Das Element fügt in die JSP eine statische Datei oder die Ausgabe ein, die eine ander JSP oder ein Servlet erzeugt. Danach wird der Rest der JSP verarbeitet. Mit Hilfe von <jsp:param>-Kinderelemente im Rumpf der Aktion können Parameter an die zu übernehmende Ressource übergeben werden. Die inkludierte Ressource kann auf das request Objekt der inkludierten Seite zugreifen.

Beispiel:

AttributBeschreibung
pagelokalisiert die einzuschliessende Ressource innerhalb der Webanwendung relativ zu akuellen Seite
flushist optional und hat als Default Wert false. Bei true wird vor der Übernahme der aufgelaugene Inhalt des Puffers an den Clienten geschickt und der Puffer geleert.

10.6 Die Aktion <jsp:param>

Die Aktionen <jsp:include>,<jsp:forward> und verwenden <jsp:param> als Kindelement für die Übergabe von zusätzlichen Paramtern verwendet werden. <jsp:params> wird in den Objectives nicht erwähnt. Es fasst mehrere <jsp:param> zusammen.

Beispiel:

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