<jsp:useBean>  

Die Aktion <jsp:useBean> assoziiert ein Java-Bean mit einem Namen in einer der JSP-Ebenen und stellt ihn als Skriptvariable zur Verfügung. Zunächst wird versucht, ein Bean mit dem angegebenen Namen auf der angegebenen Ebene zu finden. Wenn dies nicht erfolgreich ist, wird eine neue Instanz der angegebenen Klasse erstellt.

Von den optionalen Attributen muss mindestens class oder type angegeben werden. Wenn beide Attribute angegeben werden, muss class dem Attribut type zugewiesen werden können. Das Attribut beanName muss mit dem Attribut type kombiniert werden; es kann nicht mit dem Attribut class eingesetzt werden.

Die Aktion wird in folgenden Schritten verarbeitet:

  1. Es wird versucht, auf Grundlage der Attributwerte für id und scope ein Objekt zu finden.

  2. Es wird eine Variable in einer Skriptsprache mit der festgelegten id der angegebenen Attribute type oder class definiert.

  3. Wenn das Objekt gefunden wird, wird der Wert der Variablen mit einem Verweis auf das gefundene Objekt initialisiert, und zwar unter Verwendung des angegebenen Wertes für type. Damit ist die Aktionsverarbeitung abgeschlossen. Wenn der Body des Aktionselements nicht leer ist, wird er ignoriert.

  4. Wenn das Objekt nicht in der angegebenen Ebene gefunden wird und weder class noch beanName angegeben ist, wird eine Ausnahme InstantiationException verursacht. Damit ist die Aktionsverarbeitung abgeschlossen.

  5. Wenn das Objekt nicht in der angegebenen Ebene gefunden wird und das Attribut class eine nicht abstrakte Klasse mit einem öffentlichen Konstruktor ohne Argumente angibt, wird eine neue Instanz der Klasse erstellt und mit der Skriptvariablen und dem angegebenen Namen in der angegebenen Ebene assoziiert. Anschließend wird Schritt 7 ausgeführt.

    Wenn das Objekt nicht gefunden wird und die angegebene Klasse die Voraussetzungen nicht erfüllt, wird eine Ausnahme InstantiationException verursacht. Damit ist die Aktionsverarbeitung abgeschlossen.

  6. Wenn das Objekt nicht in der angegebenen Ebene gefunden wird und das Attribut beanName angegeben ist, wird die Methode instantiate() der Klasse java.beans.Beans aufgerufen, und zwar mit dem Objekt ClassLoader der Instanz der JSP-Implementierungsklasse und dem Argument beanName. Wenn die Methode erfolgreich ist, wird der neue Objektverweis mit der Skriptvariablen und dem angegebenen Namen in der angegebenen Ebene assoziiert. Anschließend wird Schritt 7 ausgeführt.

  7. Wenn der Body des Aktionselements nicht leer ist, wird der Body verarbeitet. Die Skriptvariable wird initialisiert und ist in der Body-Ebene verfügbar. Der Body-Text wird normal verarbeitet: Wenn Vorlagentext vorhanden ist, wird er an die Antwort weitergeleitet, Skriptlets und Aktions-Tags werden ausgewertet.

    Ein nicht leerer Body wird häufig verwendet, um die Initialisierung der erstellten Instanz abzuschließen. In solchen Fällen enthält der Body normalerweise <jsp:setProperty>-Aktionen und Skriptlets. Damit ist die Aktionsverarbeitung abgeschlossen.

Beispiel:

<jsp:useBean id="clock" class="java.util.Date" />
beanName String
Wert zur Anforderungszeit akzeptiert: ja

Optional. Der Bean-Name, der von der Methode instantiate() der Klasse Beans im Paket java.beans erwartet wird.

class String
Wert zur Anforderungszeit akzeptiert: nein

Optional. Der vollständige Klassenname für das Bean.

id String
Wert zur Anforderungszeit akzeptiert: nein

Obligatorisch. Der Name, der dem Bean in der angegebenen Ebene zugewiesen werden soll, und der Name der Skriptvariablen.

scope String
Wert zur Anforderungszeit akzeptiert: nein

Optional. Die Ebene für das Bean: page, request, session oder application. Die Standardeinstellung ist page.

type String
Wert zur Anforderungszeit akzeptiert: nein

Optional. Der vollständige Typenname für das Bean (das heißt eine übergeordnete Klasse oder eine Schnittstelle, die von der Bean-Klasse implementiert wird).