Sie sehen sich Hilfeinhalte der folgenden Version an:

Die Tag-Bibliotheken von Granite, CQ und Sling verleihen Ihnen Zugriff auf spezifische Funktionen für die Verwendung im JSP-Skript der Vorlagen und Komponenten.

Die Tag-Bibliothek von Granite

Die Tag-Bibliothek von Granite enthält hilfreiche Funktionen.

Bei der Entwicklung des JSP-Skripts einer Granite-UI-Komponente empfiehlt es sich, den folgenden Code oben im Skript einzufügen:

<%@include file="/libs/granite/ui/global.jsp"%>

Das globale Objekt deklariert zudem die Sling-Bibliothek.

<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling" %>

<ui:includeClientLib>

Das Tag <ui:includeClientLib> enthält eine AEM-HTML-Client-Bibliothek, bei der es sich um eine JS-, CSS- oder Design-Bibliothek handeln kann. Wenn mehrere verschiedene Typen enthalten sind, wie etwa JS und CSS, verwenden Sie dieses Tag mehrere Male in JSP. Dieses Tag ist ein praktischer Wrapper für die Dienstschnittstelle com.adobe.granite.ui.clientlibs.HtmlLibraryManager.

Es weist folgende Attribute auf:

categories

Eine durch Kommas getrennte Liste der Client-Bibliothekskategorien. Dies bezieht alle Javascript-Dateien und CSS-Bibliotheken für die betreffenden Kategorien mit ein. Der Designname wird aus der Abfrage extrahiert.

Dies entspricht: com.adobe.granite.ui.clientlibs.HtmlLibraryManager#writeIncludes

theme

Eine durch Kommas getrennte Liste der Client-Bibliothekskategorien. Dies beinhaltet alle designbezogenen Bibliotheken (CSS und JS) für die entsprechenden Kategorien. Der Designname wird aus der Abfrage extrahiert.

Dies entspricht: com.adobe.granite.ui.clientlibs.HtmlLibraryManager#writeThemeInclude

js

Eine durch Kommas getrennte Liste der Client-Bibliothekskategorien. Dies bezieht alle Javascript-Bibliotheken für die betreffenden Kategorien mit ein.

Dies entspricht: com.adobe.granite.ui.clientlibs.HtmlLibraryManager#writeJsInclude

css

Eine durch Kommas getrennte Liste der Client-Bibliothekskategorien. Dies bezieht alle CSS-Bibliotheken für die betreffenden Kategorien mit ein.

Dies entspricht: com.adobe.granite.ui.clientlibs.HtmlLibraryManager#writeCssInclude

themed

Ein Flag, das angibt, ob nur designbezogene oder nicht designbezogene Bibliotheken enthalten sein sollen. Wenn ausgelassen, sind beide Sätze enthalten. Gilt nur, wenn nur JS oder nur CSS enthalten ist (nicht wenn Kategorien oder Designs enthalten sind).

Sie können das Tag <ui:includeClientLib> in JSP folgendermaßen verwenden:

<%-- all: js + theme (theme-js + css) --%>
<ui:includeClientLib categories="cq.wcm.edit" />

<%-- only js libs --%>
<ui:includeClientLib js="cq.collab.calendar, cq.security" />

<%-- theme only (theme-js + css) --%>
<ui:includeClientLib theme="cq.collab.calendar, cq.security" />

<%-- css only --%>
<ui:includeClientLib css="cq.collab.calendar, cq.security" />

Tag-Bibliothek von CQ

Die Tag-Bibliothek von CQ enthält hilfreiche Funktionen.

Das Skript muss mit dem folgenden Code beginnen, damit Sie die Tag-Bibliothek von CQ im Skript verwenden können:

<%@taglib prefix="cq" uri="http://www.day.com/taglibs/cq/1.0" %>

Hinweis:

Wenn die /libs/foundation/global.jsp-Datei im Skript enthalten ist, wird die Tag-Bibliothek automatisch deklariert.

Wenn Sie das JSP-Skript einer AEM-Komponente entwickeln, sollten Sie folgenden Code am Anfang des Skripts einfügen:

<%@include file="/libs/foundation/global.jsp"%>

Er deklariert die Tab-Bibliotheken Sling, CQ und JSTL und stellt die regelmäßig genutzten Skriptobjekte frei, die durch das Tag <cq:defineObjects /> definiert sind. Dies verkürzt und vereinfacht den JSP-Code der Komponente.

<cq:text>

Bei dem Tag <cq:text> handelt es sich um ein Hilfe-Tag, das Komponententext in JSP ausgibt.

Es weist die folgenden optionalen Attribute auf:

property

Name der zu verwendenden Eigenschaft. Der Name steht im Bezug zur aktuellen Ressource.

value

Der für die Ausgabe zu verwendende Wert. Falls dieses Attribut vorhanden ist, wird die Nutzung des Attributs property außer Kraft gesetzt.

oldValue

Der für die diff-Ausgabe zu verwendende Wert. Falls dieses Attribut vorhanden ist, wird die Nutzung des Attributs property außer Kraft gesetzt.

escapeXml

Definiert, ob die Zeichen <, >, &, ' und " in der daraus entstehenden Zeichenfolge in ihre entsprechenden Zeichenentitätscodes umgewandelt werden sollen. Der Standardwert lautet false. Beachten Sie, dass der Escapevorgang nach der optionalen Formatierung angewendet wird.

format

Optionales java.text.Format für die Formatierung des Texts.

noDiff

Unterdrückt die Berechnung einer diff-Ausgabe, auch wenn eine diff-Information vorhanden ist.

tagClass

CSS-Klassenname eines Elements, das eine nicht leere Ausgabe umgibt. Wenn leer, wird kein Element hinzugefügt.

tagName

Name des Elements, das eine nicht leere Ausgabe umgibt. Standardmäßig ist DIV eingestellt.

placeholder

Standardwert, der im Bearbeitungsmodus für null oder leeren Text verwendet wird, z. B. der Platzhalter. Beachten Sie, dass nach der optionalen Formatierung und dem Escapevorgang die standardmäßige Prüfung ausgeführt wird, d. h. er wird im vorliegenden Format in die Ausgabe geschrieben. Standardwert ist:

<div><span class="cq-text-placeholder">&para;</span></div>

default

Zu verwendender Standardwert für null oder leeren Text. Beachten Sie, dass nach der optionalen Formatierung und dem Escapevorgang die standardmäßige Prüfung ausgeführt wird, d. h. er wird im vorliegenden Format in die Ausgabe geschrieben.

Beispiele einer möglichen Verwendung des Tags <cq:text> in JSP:

<cq:text property="jcr:title" tagName="h2"/>
<cq:text property="jcr:description" tagName="p"/>

<cq:text value="<%= listItem.getTitle() %>" tagName="h4" placeholder="" />
<cq:text value="<%= listItem.getDescription() %>" tagName="p" placeholder=""/>

<cq:text property="jcr:title" value="<%= title %>" tagName="h3"/><%
    } else if (type.equals("link")) {
        %><cq:text property="jcr:title" value="<%= "\u00bb " + title %>" tagName="p" tagClass="link"/><%
    } else if (type.equals("extralarge")) {
        %><cq:text property="jcr:title" value="<%= title %>" tagName="h1"/><%
    } else {
        %><cq:text property="jcr:title" value="<%= title %>" tagName="h2"/><%

<cq:text property="jcr:description" placeholder="" tagName="small"/>

<cq:text property="tableData"
               escapeXml="false"
               placeholder="<img src=\"/libs/cq/ui/resources/0.gif\" class=\"cq-table-placeholder\" alt=\"\">"
    />

<cq:text property="text"/>

<cq:text property="image/jcr:description" placeholder="" tagName="small"/>
<cq:text property="text" tagClass="text"/>

<cq:setContentBundle>

Das Tag <cq:setContentBundle> erstellt einen i18n-Lokalisierungskontext und speichert ihn in der Konfigurationsvariable javax.servlet.jsp.jstl.fmt.localizationContext.

Es weist folgende Attribute auf:

language

Die Sprache des Gebietsschemas, für das das Ressourcenpaket abgerufen werden soll.

source

Die Quelle, aus der das Gebietsschema aufgenommen werden soll. Sie können sie auf einen der folgenden Werte einstellen:

  • static: Das Gebietsschema wird vom Attribut language übernommen, falls verfügbar, andernfalls vom standardmäßigen Servergebietsschema.
  • page: Das Gebietsschema wird von der Sprache der aktuellen Seite oder Ressource übernommen, falls verfügbar, andernfalls vom language-Attribut, falls verfügbar, oder andernfalls vom standardmäßigen Servergebietsschema.
  • request: Das Gebietsschema wird vom angeforderten Gebietsschema (request.getLocale()) übernommen.
  • auto: Das Gebietsschema wird vom language-Attribut übernommen, falls verfügbar, andernfalls von der Sprache der aktuellen Seite oder Ressource, falls verfügbar, andernfalls von der Anfrage.

Falls das source-Attribut nicht festgelegt ist:

  • Falls das language-Attribut festgelegt ist, ist für das source-Attribut standardmäßig static eingestellt.
  • Falls das language-Attribut nicht festgelegt ist, ist für das source-Attribut standardmäßig auto eingestellt.

Das „Inhaltspaket“ kann einfach anhand standardmäßiger JSTL-<fmt:message>-Tags verwendet werden. Die Suche von Nachrichten anhand von Schlüsselwörtern hat zwei Aspekte:

  1. Zunächst werden die JCR-Eigenschaften der zugrunde liegenden Ressource, die derzeit wiedergegeben wird, nach Übersetzungen durchsucht. Auf diese Weise können Sie ein einfaches Komponentendialogfeld definieren, um diese Werte zu bearbeiten.
  2. Wenn der Knoten keine Eigenschaft mit dem exakt gleichen Namen wie das Schlüsselwort enthält, wird ein Ressourcenpaket aus der Sling-Anforderung (SlingHttpServletRequest.getResourceBundle(Locale)) geladen. Die Sprache oder das Gebietsschema für dieses Paket wird von den Sprach- und Quellattributen des Tags <cq:setContentBundle> definiert.

 

Das Tag <cq:setContentBundle> kann in einem JSP wie folgt verwendet werden.

Für Seiten, die ihre Sprache definieren:

... %><cq:setContentBundle source="page"/><%  %>
<div class="error"><fmt:message key="Hello"/>
</div> ...

Für von Benutzern personalisierte Seiten:

... %><cq:setContentBundle scope="request"/><% %>
<div class="error"><fmt:message key="Hello"/>
</div> ...

<cq:include>

Das <cq:include>-Tag fügt eine Ressource in die aktuelle Seite ein.

Es weist folgende Attribute auf:

flush

  • Ein boolescher Wert, der definiert, ob die Ausgabe geleert werden soll, bevor das Ziel eingefügt wird.

path

  • Der Pfad zum Ressourcenobjekt, das in die aktuelle Anforderungsverarbeitung eingefügt werden soll. Ein relativer Pfad wird an den Pfad der aktuellen Ressource angehängt, deren Skript die angegebene Ressource enthält. path und resourceType oder script müssen angegeben sein.

resourceType

  • Der Ressourcentypen der Ressource, die hinzugefügt werden soll. Wenn der Ressourcentyp festgelegt ist, muss der Pfad der genaue Pfad zu einem Ressourcenobjekt sein: in diesem Fall wird das Hinzufügen von Parametern, Selektoren und Erweiterungen zum Pfad nicht unterstützt.
  • Falls die einzufügende Ressource mit dem path-Attribut angegeben ist, das nicht in eine Ressource aufgelöst werden kann, erstellt das Tag möglicherweise ein synthetisches Ressourcenobjekt aus dem Pfad und diesem Ressourcentyp.
  • path und resourceType oder script müssen angegeben sein.

script

  • Das JSP-Skript, das einbezogen werden soll. path und resourceType oder script müssen angegeben sein.

ignoreComponentHierarchy

  • Eine boolesches Element, das steuert, ob die Komponentenhierarchie für die Skriptauflösung ignoriert werden soll. Bei „true“ werden nur die Suchpfade berücksichtigt.

Beispiel:

<%@taglib prefix="cq" uri="http://www.day.com/taglibs/cq/1.0" %><%
%><div class="center">
    <cq:include path="trail" resourceType="foundation/components/breadcrumb" />
    <cq:include path="title" resourceType="foundation/components/title" />
    <cq:include script="redirect.jsp"/>
    <cq:include path="par" resourceType="foundation/components/parsys" />
</div>

 Verwenden Sie <%@ include file="myScript.jsp" %> oder <cq:include script="myScript.jsp" %>, um ein Skript einzufügen?

  • Die Richtlinie <%@ include file="myScript.jsp" %> informiert den JSP-Compiler, dass er eine vollständige Datei in die aktuelle Datei einfügen soll. Es ist, als ob die Inhalte der enthaltenen Datei direkt in die Originaldatei eingefügt würden.

  • Mit dem Tag <cq:include script="myScript.jsp"> ist die Datei zur Laufzeit enthalten.

 

Sollten Sie <cq:include> oder <sling:include> verwenden?

  • Bei der Entwicklung von AEM-Komponenten empfiehlt Adobe die Verwendung von <cq:include>.

  • <cq:include> ermöglicht das direkte Einfügen von Skriptdateien anhand ihres Namens, wenn Sie das script-Attribut verwenden. Dabei werden Komponenten- und Ressourcentypvererbung berücksichtigt. Diese ist häufig einfacher als die strikte Einhaltung der Skriptauflösung von Sling mithilfe von Selektoren und Erweiterungen.

 

<cq:includeClientLib>

Vorsicht:

<cq:includeClientLib> ist seit AEM 5.6 veraltet. <ui:includeClientLib> muss stattdessen verwendet werden.

Das Tag <cq:includeClientLib> enthält eine AEM-HTML-Client-Bibliothek, bei der es sich um eine JS-, CSS- oder Design-Bibliothek handeln kann. Wenn mehrere verschiedene Typen enthalten sind, wie etwa JS und CSS, verwenden Sie dieses Tag mehrere Male in JSP. Dieses Tag ist ein praktischer Wrapper für die Dienstschnittstelle com.day.cq.widget.HtmlLibraryManager.

Es weist folgende Attribute auf:

categories

Eine durch Kommas getrennte Liste der Client-Bibliothekskategorien. Dies bezieht alle Javascript-Dateien und CSS-Bibliotheken für die betreffenden Kategorien mit ein. Der Designname wird aus der Abfrage extrahiert.

Entspricht: com.day.cq.widget.HtmlLibraryManager#writeIncludes

theme

Eine durch Kommas getrennte Liste der Client-Bibliothekskategorien. Dies beinhaltet alle designbezogenen Bibliotheken (CSS und JS) für die entsprechenden Kategorien. Der Designname wird aus der Abfrage extrahiert.

Entspricht: com.day.cq.widget.HtmlLibraryManager#writeThemeInclude

js

Eine durch Kommas getrennte Liste der Client-Bibliothekskategorien. Dies bezieht alle Javascript-Bibliotheken für die betreffenden Kategorien mit ein.

Entspricht: com.day.cq.widget.HtmlLibraryManager#writeJsInclude

css

Eine durch Kommas getrennte Liste der Client-Bibliothekskategorien. Dies bezieht alle CSS-Bibliotheken für die betreffenden Kategorien mit ein.

Entspricht: com.day.cq.widget.HtmlLibraryManager#writeCssInclude

themed

Ein Flag, das angibt, ob nur designbezogene oder nicht designbezogene Bibliotheken enthalten sein sollen. Wenn ausgelassen, sind beide Sätze enthalten. Gilt nur, wenn nur JS oder nur CSS enthalten ist (nicht wenn Kategorien oder Designs enthalten sind).

Sie können das Tag <cq:includeClientLib> in JSP folgendermaßen verwenden:

<%-- all: js + theme (theme-js + css) --%>
<cq:includeClientLib categories="cq.wcm.edit" />

<%-- only js libs --%>
<cq:includeClientLib js="cq.collab.calendar, cq.security" />

<%-- theme only (theme-js + css) --%>
<cq:includeClientLib theme="cq.collab.calendar, cq.security" />

<%-- css only --%>
<cq:includeClientLib css="cq.collab.calendar, cq.security" />

<cq:defineObjects>

 

Das Tag <cq:defineObjects> stellt die folgenden, regelmäßig verwendeten Skriptobjekte frei, auf die vom Entwickler verwiesen werden kann. Darüber hinaus werden die Objekte freigestellt, die durch das Tag <sling:defineObjects> definiert sind.

componentContext

  • das aktuelle Komponentenkontextobjekt der Anfrage (com.day.cq.wcm.api.components.ComponentContext-Schnittstelle).

component

  • das aktuelle AEM-Komponentenobjekt der aktuellen Ressource (com.day.cq.wcm.api.components.Component-Schnittstelle).

currentDesign

  • das aktuelle Entwurfsobjekt der aktuellen Seite (com.day.cq.wcm.api.designer.Design-Schnittstelle).

currentPage

  • das aktuelle AEM WCM-Seitenobjekt (com.day.cq.wcm.api.Page-Schnittstelle).

currentStyle

  • das aktuelle Stilobjekt der aktuellen Zelle (com.day.cq.wcm.api.designer.Style-Schnittstelle).

designer

  • das designer-Objekt für den Zugriff auf Entwurfsinformationen (com.day.cq.wcm.api.designer.Designer-Schnittstelle).

editContext

  • das Bearbeitungskontext-Objekt der AEM-Komponente (com.day.cq.wcm.api.components.EditContext-Schnittstelle).

pageManager

  • das Seitenmanager-Objekt für Vorgänge auf Seitenebene (com.day.cq.wcm.api.PageManager-Schnittstelle).

pageProperties

  • das Seiteneigenschaftenobjekt der aktuellen Seite (org.apache.sling.api.resource.ValueMap).

properties

  • das Eigenschaftenobjekt der aktuellen Ressource (org.apache.sling.api.resource.ValueMap).

resourceDesign

  • das Entwurfsobjekt der Ressourcenseite (com.day.cq.wcm.api.designer.Design-Schnittstelle).

resourcePage

  • das Ressourcenseitenobjekt (com.day.cq.wcm.api.Page-Schnittstelle).
  • Es weist folgende Attribute auf:

requestName

  • von Sling geerbt

responseName

  • von Sling geerbt

resourceName

  • von Sling geerbt

nodeName

  • von Sling geerbt

logName

  • von Sling geerbt

resourceResolverName

  • von Sling geerbt

slingName

  • von Sling geerbt

componentContextName

  • spezifisch für wcm

editContextName

  • spezifisch für wcm

propertiesName

  • spezifisch für wcm

pageManagerName

  • spezifisch für wcm

currentPageName

  • spezifisch für wcm

resourcePageName

  • spezifisch für wcm

pagePropertiesName

  • spezifisch für wcm

componentName

  • spezifisch für wcm

designerName

  • spezifisch für wcm

currentDesignName

  • spezifisch für wcm

resourceDesignName

  • spezifisch für wcm

currentStyleName

  • spezifisch für wcm

Beispiel

 

<%@page session="false" contentType="text/html; charset=utf-8" %><%
%><%@ page import="com.day.cq.wcm.api.WCMMode" %><%
%><%@taglib prefix="cq" uri="http://www.day.com/taglibs/cq/1.0" %><%
%><cq:defineObjects/>

Hinweis:

Wenn die Datei /libs/foundation/global.jsp im Skript enthalten ist, wird das Tag <cq:defineObjects /> automatisch eingefügt.

<cq:requestURL>

Das Tag <cq:requestURL> schreibt die aktuelle Anforderungs-URL in JspWriter. Die beiden Tags <cq:addParam> und <cq:removeParam> können im Inneren dieses Tags verwendet werden, um die aktuelle Anforderungs-URL zu bearbeiten, bevor sie geschrieben wird.

Sie können Links zur aktuellen Seite mit variierenden Parametern erstellen. Beispielsweise können Sie die Anforderung umwandeln:

mypage.html?mode=view&query=something in mypage.html?query=something.

Mit addParam oder removeParam wird nur das Auftreten des angegebenen Parameters verändert, alle anderen Parameter sind nicht betroffen.

<cq:requestURL> weist kein Attribut auf.

Beispiele:

<a href="<cq:requestURL><cq:removeParam name="language"/></cq:requestURL>">remove filter</a>
<a title="filter results" href="<cq:requestURL><cq:addParam name="language" value="${bucket.value}"/></cq:requestURL>">${label} (${bucket.count})</a>

<cq:addParam>

Das Tag <cq:addParam> fügt einen Anforderungsparameter mit dem angegebenen Namen und Wert zum umschließenden Tag <cq:requestURL> hinzu.

Es weist folgende Attribute auf:

name

 

  • Name des Parameters, der hinzugefügt werden soll

value

  • Wert des Parameters, der hinzugefügt werden soll

 

 

Beispiel:

<a title="filter results" href="<cq:requestURL><cq:addParam name="language" value="${bucket.value}"/></cq:requestURL>">${label} (${bucket.count})</a>

<cq:removeParam>

Das Tag <cq:removeParam> entfernt einen Anforderungsparameter mit dem angegebenen Namen und Wert aus dem umschließenden Tag <cq:requestURL>. Wenn kein Wert angegeben wird, werden alle Parameter mit dem jeweiligen Namen entfernt.

Es weist folgende Attribute auf:

name

  • Name des Parameters, der entfernt werden soll

Beispiel:

<a href="<cq:requestURL><cq:removeParam name="language"/></cq:requestURL>">remove filter</a>

Tag-Bibliothek von Sling

Die Tag-Bibliothek von Sling enthält hilfreiche Sling-Funktionen.

Wenn Sie die Tag-Bibliothek von Sling in Ihrem Skript verwenden, muss das Skript mit dem folgenden Code beginnen:

<%@ taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0" %>

Hinweis:

Wenn die Datei /libs/foundation/global.jsp im Skript enthalten ist, wird die Tag-Bibliothek von Sling automatisch deklariert.

<sling:include>

Das Tag <sling:include> fügt eine Ressource in die aktuelle Seite ein.

Es weist folgende Attribute auf:

flush

  • Ein boolescher Wert, der definiert, ob die Ausgabe geleert werden soll, bevor das Ziel eingefügt wird.

resource

  • Das Ressourcenobjekt, das in die aktuelle Anforderungsverarbeitung eingefügt werden soll. resource oder path muss angegeben werden. Wenn beide angegeben sind, hat resource Vorrang.

path

  • Der Pfad zum Ressourcenobjekt, das in die aktuelle Anforderungsverarbeitung eingefügt werden soll. Ein relativer Pfad wird an den Pfad der aktuellen Ressource angehängt, deren Skript die angegebene Ressource enthält. resource oder path muss angegeben werden. Wenn beide angegeben sind, hat resource Vorrang.

resourceType

  • Der Ressourcentypen der Ressource, die hinzugefügt werden soll. Wenn der Ressourcentyp festgelegt ist, muss der Pfad der genaue Pfad zu einem Ressourcenobjekt sein: in diesem Fall wird das Hinzufügen von Parametern, Selektoren und Erweiterungen zum Pfad nicht unterstützt.
  • Falls die einzufügende Ressource mit dem path-Attribut angegeben ist, das nicht in eine Ressource aufgelöst werden kann, erstellt das Tag möglicherweise ein synthetisches Ressourcenobjekt aus dem Pfad und diesem Ressourcentyp.

replaceSelectors

  • Beim Versenden werden die Selektoren durch den Wert dieses Attributs ersetzt.

addSelectors

  • Beim Versenden wird der Wert dieses Attributs den Selektoren hinzugefügt.

replaceSuffix

  • Beim Versenden wird das Suffix durch den Wert dieses Attributs ersetzt.

 

Hinweis:

Die Auflösung der Ressource und des Skripts, das im Tag <sling:include> enthalten ist, ist dieselbe wie bei einer normalen URL-Auflösung in Sling. Standardmäßig werden die Selektoren, die Erweiterung usw. der aktuellen Anforderung auch für das enthaltene Skript verwendet. Sie können durch die Tag-Attribute geändert werden: z. B. ermöglicht Ihnen replaceSelectors="foo.bar" das Überschreiben der Selektoren.

Beispiele:

<div class="item"><sling:include path="<%= pathtoinclude %>"/></div>
<sling:include resource="<%= par %>"/>
<sling:include addSelectors="spool"/>
<sling:include resource="<%= par %>" resourceType="<%= newType %>"/>
<sling:include resource="<%= par %>" resourceType="<%= newType %>"/>
<sling:include replaceSelectors="content" />

<sling:defineObjects>

Das Tag <sling:defineObjects> stellt die folgenden, regelmäßig verwendeten Skriptobjekte frei, auf die vom Entwickler verwiesen werden kann:

slingRequest

  • SlingHttpServletRequest-Objekt, bietet Zugriff auf die Informationen der HTTP-Anforderungskopfzeile – erweitert die standardmäßige HttpServletRequest – und auf Sling-spezifische Dinge wie Ressource, Pfadinformationen, Selektor usw.

slingResponse

  • SlingHttpServletResponse-Objekt, bietet Zugriff für die HTTP-Antwort, die vom Server erstellt wird. Dies ist derzeit dieselbe wie die HttpServletResponse, von der aus sie erweitert wird.request
  • das Standard-JSP-Anforderungsobjekt, bei dem es sich um eine reine HttpServletRequest handelt.response
  • das Standard-JSP-Antwortobjekt, bei dem es sich um ein reines HttpServletResponse-Objekt handelt.

resourceResolver

  • das aktuelle ResourceResolver-Objekt. Entspricht slingRequest.getResourceResolver()

.sling

  • ein SlingScriptHelper-Objekt, das komfortable Methoden für Skripte enthält, hauptsächlich sling.include('/some/other/resource') zum Einfügen der Antworten anderer Ressourcen innerhalb dieser Antwort (z. B. Einbetten von Kopfzeilen-HTML-Snippets) und sling.getService(foo.bar.Service.class) zum Abrufen der verfügbaren OSGi-Dienste in Sling (Klassennotation abhängig von Skriptingsprache).

resource

  • das derzeit zu bearbeitende Ressourcenobjekt, abhängig von der URL der Anforderung. Entspricht slingRequest.getResource().

currentNode

  • Falls die aktuelle Ressource auf einen JCR-Knoten verweist (was in der Regel bei Sling der Fall ist), verleiht dies dem Knotenobjekt direkten Zugriff. Andernfalls ist dieses Objekt nicht definiert.

log

  • Stellt einen SLF4J Logger zum Protokollieren des Sling-Protokollsystems in Skripten bereit, z. B. log.info("Executing my script").

 

  • Es weist folgende Attribute auf:

requestName

responseName

 

nodeName

logName resourceResolverName

slingName

 

Beispiel:

<%@page session="false" %><%
%><%@page import="com.day.cq.wcm.foundation.forms.ValidationHelper"%><%
%><%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0" %><%
%><sling:defineObjects/>

Tag-Bibliothek von JSTL

Die standardmäßige Tag-Bibliothek JavaServer-Seiten enthält viele hilfreiche und standardmäßige Tags. Die Tag-Bibliotheken für Kern, Formatierung und Funktionen werden anhand von /libs/foundation/global.jsp wie im folgenden Snippet gezeigt definiert.

Auszug aus /libs/foundation/global.jsp

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

Nach dem Importieren der Datei /libs/foundation/global.jsp wie zuvor beschrieben können Sie die Präfixe c, fmt und fn verwenden, um auf diese Tag-Bibliotheken zuzugreifen. Die offizielle Dokumentation der JSTL ist verfügbar unter Das Java EE 5-Tutorial – standardmäßige Tag-Bibliothek JavaServer-Seiten.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie