Inhalt | Abbildung | Source | SCWCD | |||
|< | < | > | >| | Generated by CoCoDiL |
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.
Attribut | Beschreibung |
id | Name der die JavaBean im angegebenen Scope identifiziert und zugleich SkriptVariablenname für die Referenz auf das Objekt. |
scope | Geltungsbereich, in dem die Objektreferenz verfügbar ist. Vorgabe ist page |
class | Voll qualifizierter Klassenname |
beanName | ame einer Bean, wie er von der Methode instantiate() in der Klasse java.beans.Beans erwartet wird. |
type | bestimmt 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 |
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
Name | Bedeutung |
name | Name der Bean-Instanz, deren Eigenschaft interessiert. Muss dem Wert von id in jsp:useBean entsprechen |
property | Name der Eigenschaft, die abgefragt werden soll |
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.
Attribut | Beschreibung |
name | Name der Bean-Instanz, deren Eigenschaft bestimmt werden soll. Muss dem Wert von id in <jsp:useBean> entsprechen |
property | Name der Eigenschaft, die gesetzt werden soll oder ein Wildcard für alle Eigenschaften |
param | Name eines Anfrage-Parameters |
value | Attributwert, 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>. |
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:
Attribut | Beschreibung |
page | lokalisiert die einzuschliessende Ressource innerhalb der Webanwendung relativ zu akuellen Seite |
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:
Attribut | Beschreibung |
page | lokalisiert die einzuschliessende Ressource innerhalb der Webanwendung relativ zu akuellen Seite |
flush | ist 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. |
Die Aktionen <jsp:include>,<jsp:forward> und
Beispiel:
Inhalt | Abbildung | Source | SCWCD | |||
|< | < | > | >| | Generated by CoCoDiL |