Heim >Java >javaLernprogramm >Verwendung des Tiles-Frameworks in Struts
Dies ist der dritte Teil der Serie zur Verwendung des Tiles-Frameworks im Buch „Jakarta Struts Programming“. Er erklärt hauptsächlich die Verwendung der Tag-Bibliothek (einschließlich: insert, definition, put, putList, add, get,). getAsString, useAttribute, importAttribute und initComponentDefinitions).
Die Tiles-Tag-Bibliothek (Die Tiles-Tag-Bibliothek)
In diesem Abschnitt werden die benutzerdefinierten JSP-Tags vorgestellt, die vom Tiles-Framework verwendet werden. Tabelle 14-1 listet die für das Framework verfügbaren Tags auf. Diese Tags sind denen einiger anderer vorlagenbasierter Frameworks sehr ähnlich, das Tiles-Framework verfügt jedoch über umfangreichere Funktionen.
Tabelle 14-1: Tags in der Tiles-Framework-Tag-Bibliothek
Tag-Name (Beschreibung)
Hinzufügen Fügt ein Element zur Umgebungsliste hinzu.
Definition Erstellen Sie eine Tiles-Komponentendefinition.
GetRuft den Inhalt aus dem Anforderungsbereich ab. Dieser Inhalt wird durch das Put-Tag
platziert.
GetAsString Übergibt den durch das Tile/Component/Template-Attribut angegebenen Wert an den aktuellen
JspWriter.
ImportAttribute führt ein Tiles-Attribut in den angegebenen Kontext ein.
initComponentDefinitions Initialisiert eine Tiles-Definitionsfactory.
Einfügen Fügt eine Tiles-Komponente ein.
Put Legen Sie eine Eigenschaft für einen Tiles-Kontext fest.
PutList Deklarieren Sie eine Liste, die als Eigenschaft übergeben wird.
useAttribute Verwenden Sie einen Attributwert auf der Seite.
Tag einfügen
Tag einfügen ist für das Einfügen von Inhalten in die Seite verantwortlich. In einem Tiles-Layout verwendet das Insert-Tag den durch den Attributwert angegebenen Inhalt. In Nicht-Kachel-Layouts wird das Insert-Tag verwendet, um einen Rahmen (Layout) zu erhalten, und das Put-Tag wird verwendet, um den Inhalt an das Layout zu übergeben.
Tabelle 14-2 listet die Attribute des Insert-Tags auf:
Tabelle 14-2: Attribute des Insert-Tags
Attributname (Beschreibung)
Attribut Aktuelle Kacheln/Die Attributname des Komponentenkontexts. Dieser Attributwert wird vom Namensattribut übergeben.
beanName Der Name der Bean wird als Wert verwendet. Die Bean wird aus dem angegebenen Inhalt ermittelt.
Sofern verfügbar, kann die Bean aus dem angegebenen Kontext abgerufen werden. Andernfalls müssen Sie die Methode pageContext.findAttribute() verwenden, um es abzurufen. Wenn das beanPROperty-Attribut angegeben wurde, kann dieser Wert auch aus dem entsprechenden Bean-Attribut erhalten werden.
Wenn diese Bean (oder der Attributwert der Bean) eine Instanz einer bestimmten Attributklasse (Direkt, Instanz usw.) ist, hängt der Einfügevorgang vom Typ der Klasse ab. Außerdem wird die toString()-Methode der Bean aufgerufen und der Rückgabewert ist String und wird an das Namensattribut übergeben.
beanProperty Der Name der Bean-Eigenschaft (Eigenschaft), falls angegeben, dann wird dieser Wert von der Bean-Eigenschaft (Eigenschaft) abgerufen.
beanScope Der Gültigkeitsbereich der Bean-Methode, falls nicht angegeben Kann verwendet werden. Der Geltungsbereich einer Bean kann eine beliebige JSP, Komponente oder Vorlage sein. In den beiden letztgenannten Fällen (Komponente, Vorlage) kann die Bean in der Komponente Tiles (tile)/component/template content
eine Zeichenfolge sein, die den Kachel- oder Vorlagen-URI (Template) beschreibt. Die Eigenschaften der Seite und der Komponente müssen genau die sein gleiches Verhalten
controllerUrl Der direkte URI des Controllers, bevor die Seite eingefügt wird. Dieser URI wird normalerweise verwendet, um eine strUCt-Aktion anzugeben. Dieser Controller (Aktion) wird verwendet, um Daten für die eingefügte Kachel vorzubereiten. Es kann nur eine ControllerUrl oder ControllerClass geben
ControllerClass ist eine Art Steuerklasse, die direkt vor dem Einfügen der Seite aufgerufen wird. Diese Klasse wird verwendet, um Daten für eingefügte Kacheln vorzubereiten. Es kann nur eine ControllerUrl oder ControllerClass geben. Diese Klasse implementiert oder erweitert eine der folgenden Klassen: org.apache.struts.tiles.Controller, org.apache.struts.tiles.ControllerSupport oder org.apache.struts.action.Action.
definition Fügen Sie den Namen von ein die Definition. Definitionen werden in einer zentralen Datei definiert. Mit diesem Attribut kann nun nur noch eine Factory-Definition eingefügt werden. Fügen Sie eine mit Definition definierte Definition ein, verwenden Sie beanName=".
flush true oder false, wenn true, gibt die aktuelle Seite den Stream vor dem Einfügen der Kachel aus.
ignore Wenn dieses Attribut auf true gesetzt und der Name angegeben ist Wenn das Attribut nicht vorhanden ist, wird einfach ein Ergebnis zurückgegeben, ohne dass etwas geschrieben wird. Der Anfangswert ist auf „false“ gesetzt, was eine Laufzeitausnahme auslösen kann.
Name Der Name der einzufügenden Entität. Die Suche erfolgt in der folgenden Reihenfolge: Definition, Attribut, dann Seite.
Seite Eine URI-Zeichenfolge, die eine Kachel oder Vorlage darstellt. Vorlagen-, Seiten- und Komponentenattribute müssen unbedingt dasselbe Verhalten aufweisen
Rolle Wenn der Benutzer die angegebene Rolle hat, wird dieses Tag wirksam. Andernfalls wird dieses Tag ignoriert und es wird kein Inhalt geschrieben.
Vorlage Eine URI-Zeichenfolge, die eine Kachel oder Vorlage darstellt. Vorlagen-, Seiten- und Komponentenattribute müssen genau das gleiche Verhalten aufweisen
Definitions-Tag
Das Definitions-Tag verwendet die Bean-Definitionsmethode, um eine Kachel (Vorlage) zu erstellen. Diese neu erstellte Bean verwendet eine ID in der angeforderten Datei Umfang zu identifizieren. Die Syntax des Definitions-Tags ist teilweise mit der Syntax von insert identisch. Neue Definitionen können bereits in der Definitionsfabrik (XML-Datei) beschriebene Definitionen erweitern und zuvor definierte Parameter überschreiben.
Tabelle 14-3 listet die vom Definitions-Tag unterstützten Attribute auf
Attributname Beschreibung
extends können verwendet werden, um die übergeordnete Definition zu erweitern, die in der Definitionsfabrik definiert ist.
id definiert den Namen der Bean, dieses Attribut ist erforderlich
Seiten-URL zum Einfügen einer Vorlage/Komponente. Gleich wie Vorlage.
Rolle Überprüfen Sie vor dem Einfügen einer Definition die Rolle. Wenn der aktuelle Benutzer diese Rolle nicht definiert, wird diese Definition nicht eingefügt. Überprüfen Sie dies beim Einfügen, nicht beim Definieren.
Der Bereich wird erstellt, wenn eine Bean neu definiert wird. Wenn nicht angegeben, ist der Standardwert die URL des Seitenbereichs.
Vorlagenkachel/Komponente/Vorlage (eine JSP-Seite)
Der folgende Codeausschnitt zeigt, wie das Definitions-Tag in JSP verwendet wird.
page="/layouts/storefrontDefaultLayout.jsp"
scope="request">
< ;tiles:put name="copyright" value="/common/copyright.jsp" />
Ein vollständiges Beispiel finden Sie weiter unten unter „Deklarieren“. Dieses Kapitel wird in „Definitionen auf einer JSP-Seite“ angezeigt. Dieses Tag kann nur innerhalb eines Einfügungs- oder Definitions-Tags verwendet werden. Der Wert des Put-Tags wird durch das Wertattribut oder den Tag-Körper angegeben. Oft werden auch Werttypen angegeben.
String: Wie der Name schon sagt
Seite oder Vorlage: Der Inhalt enthält die angegebene URL. Der Name wird normalerweise als URL verwendet.
Definition: Der Inhalt wird aus der Definition der angegebenen (von der Fabrik) erhalten ). Der Name wird als definierter Name verwendet. Wenn Typ verwendet wird, wird er durch ein get- oder insert-Tag in die Kachel eingefügt. Wenn das Typattribut nicht angegeben ist, ist der Inhalt untypisiert, es sei denn, er stammt von einer typisierten Bean.
Tipp: Setzen Sie direct="true" Es ist dasselbe wie das Setzen von type="string".
Tabelle 14-4 listet die Attribute des Put-Tags auf.
Eigenschaftsname Beschreibung
beanName Der Name der Bohne wird auf die gleiche Weise verwendet wie der Wert der Bohne aus dem außergewöhnlichen Inhalt. Wenn es eines gibt, können Sie es auch mit der Methode pageContext.findAttribute() abrufen. Wenn das beanProperty-Attribut angegeben wurde, kann dieser Wert aus der entsprechenden Bean-Eigenschaft abgerufen werden.
beanProperty Der Name der Bean-Eigenschaft. Wenn angegeben, wird der Wert von der Bean-Eigenschaft abgerufen.
beanScope Der Gültigkeitsbereich der Bean. Wenn nicht angegeben, kann die Methode pageContext.findAttribute() verwendet werden. Der Geltungsbereich einer Bean kann eine beliebige JSP, Komponente oder Vorlage sein. In den beiden letztgenannten Fällen (Komponente, Vorlage) kann sich die Bean in Tiles (Kachel)/Komponente/Vorlage (Vorlage) befinden. Inhalt
Inhalt Der Inhalt liegt im Bereich der Kachel. Das Attribut entspricht dem Wertattribut und wird aus Kompatibilitätsgründen mit JSP-Vorlagen-Tags hinzugefügt. .
DirectControl-Methode des Inhalts: true bedeutet, dass der Inhalt direkt angezeigt wird; false bedeutet, dass der Inhalt enthalten ist. false ist der Standardwert. Es ist auch eine Möglichkeit, den Inhaltstyp anzugeben. Bei direct="true" ist der Inhalt "string"; bei direct="false" ist der Inhalt "page". Dieses Attribut wird zur Kompatibilität mit JSP-Vorlagen-Tags hinzugefügt. .
Name Der Name des Attributs.
Rolle Dieses Tag funktioniert nur, wenn der Benutzer die angegebene Rolle hat. Andernfalls wird dieses Tag ignoriert und es wird kein Inhalt geschrieben.
Typ Die Art des Inhalts. Gültige Werte sind „string“, „page“, „template“ oder „definition“.
Wert Der Wert der Eigenschaft, der String oder Object sein kann. Der Wert wird direkt zugewiesen. (value="avalue") oder von einer Bean erhalten. Es muss ein Wert, ein Inhalt oder ein BeanName vorhanden sein.
putList-Tag
Das putList-Tag erstellt eine Liste und übergibt sie als Wert in der Kachel. Listenelemente werden mithilfe des Add-Tags hinzugefügt. Dieses Tag kann nur in Einfüge- oder Definitions-Tags verwendet werden.
Tabelle 14-5 listet die Attribute des putList-Tags auf.
Attributname Beschreibung
Name der Namensliste. Dieses Attribut ist erforderlich.
Tag hinzufügen
Das Tag hinzufügen fügt ein Element zur umgebenden Liste hinzu. Dieses Tag kann nur im putList-Tag verwendet werden. Dieser Wert kann direkt zugewiesen werden. (value="avalue") oder von einer Bean erhalten. Es muss ein Wert oder beanName angegeben werden.
Tabelle 14-6 listet die Attribute des Add-Tags auf.
Attributname Beschreibung
beanName Der Name der Bean wird auf die gleiche Weise verwendet wie der Wert der Bean aus dem außergewöhnlichen Inhalt. Wenn ja, können Sie auch pageContext.find verwenden
Das Obige ist der Inhalt der Verwendung des Tiles-Frameworks in Struts. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn)!