Taggbiblioteken Granite, CQ och Sling ger dig tillgång till specifika funktioner som du kan använda i JSP-skriptet för dina mallar och komponenter.
Biblioteket med Granite-taggar innehåller användbara funktioner.
När du utvecklar jsp-skriptet för en GRA-gränssnittskomponent bör du ta med följande kod högst upp i skriptet:
<%@include file="/libs/granite/ui/global.jsp"%>
Den globala filen deklarerar också Sling Library.
<%@taglib prefix="sling" uri="https://sling.apache.org/taglibs/sling" %>
The <ui:includeClientLib>
tagg Innehåller ett AEM HTML-klientbibliotek, som kan vara ett js, en css eller ett temabibliotek. För flera inkluderingar av olika typer, till exempel js och css, måste den här taggen användas flera gånger i jsp. Den här taggen är ett bekvämt omslag runt [com.adobe.granite.ui.clientlibs.HtmlLibraryManager](https://helpx.adobe.com/experience-manager/6-5/sites/developing/using/reference-materials/javadoc/com/adobe/granite/ui/clientlibs/HtmlLibraryManager.html)
tjänstgränssnitt.
Den har följande attribut:
kategorier - En lista med kommaavgränsade klientlibkategorier. Detta inkluderar alla JavaScript- och CSS-bibliotek för de angivna kategorierna. Temanamnet extraheras från begäran.
Motsvarar: com.adobe.granite.ui.clientlibs.HtmlLibraryManager#writeIncludes
tema - En lista med kommaavgränsade klientlibkategorier. Detta inkluderar alla temarelaterade bibliotek (både CSS och JS) för de angivna kategorierna. Temanamnet extraheras från begäran.
Motsvarar: com.adobe.granite.ui.clientlibs.HtmlLibraryManager#writeThemeInclude
js - En lista med kommaavgränsade klientlibkategorier. Detta inkluderar alla JavaScript-bibliotek för de angivna kategorierna.
Motsvarar: com.adobe.granite.ui.clientlibs.HtmlLibraryManager#writeJsInclude
css - En lista med kommaavgränsade klientlibkategorier. Detta inkluderar alla CSS-bibliotek för de angivna kategorierna.
Motsvarar: com.adobe.granite.ui.clientlibs.HtmlLibraryManager#writeCssInclude
tema - En flagga som endast anger teman eller icke-teman för bibliotek ska inkluderas. Om det utelämnas inkluderas båda uppsättningarna. Gäller endast rena JS- eller CSS-inkluderingar (inte för kategorier eller teman).
The <ui:includeClientLib>
-taggen kan användas så här i en jsp:
<%-- 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" />
CQ-taggbiblioteket innehåller användbara funktioner.
Om du vill använda CQ-taggbiblioteket i skriptet måste skriptet börja med följande kod:
<%@taglib prefix="cq" uri="https://www.day.com/taglibs/cq/1.0" %>
När /libs/foundation/global.jsp
-filen inkluderas i skriptet, taglib deklareras automatiskt.
När du utvecklar jsp-skriptet för en AEM bör du ta med följande kod högst upp i skriptet:
<%@include file="/libs/foundation/global.jsp"%>
Den deklarerar sling-, CQ- och jstl-taggarna och visar de skriptobjekt som används ofta och definieras av <cq:defineObjects />
-tagg. Detta förkortar och förenklar jsp-koden för komponenten.
The <cq:text>
-taggen är en praktisk tagg som visar komponenttext i en JSP.
Den har följande valfria attribut:
property - Namnet på den egenskap som ska användas. Namnet är relativt till den aktuella resursen.
value - Värde som ska användas för utdata. Om det här attributet finns skrivs användningen av egenskapsattributet över.
oldValue - Värde som ska användas för differensutdata. Om det här attributet finns skrivs användningen av egenskapsattributet över.
escapeXml - Definierar om tecknen <, >, &, ' och " i den resulterande strängen ska konverteras till motsvarande teckenentitetskoder. Standardvärdet är false. Den nya inställningen används efter den valfria formateringen.
format - Valfritt java.text.Format som ska användas för att formatera texten.
noDiff - Utelämnar beräkningen av ett diff-resultat, även om det finns en diff-information.
tagClass - CSS-klassnamn för ett element som omger utdata som inte är tomma. Om det är tomt läggs inget element till.
tagName - Namnet på det element som omger ett utdata som inte är tomt. Som standard är det DIV.
platshållare - Standardvärde som används för null eller tom text i redigeringsläge, det vill säga platshållaren. Standardkontrollen utförs efter den valfria formateringen och escape-konverteringen, d.v.s. efter att utdata har skrivits som de är. Standardvärdet är:
<div><span class="cq-text-placeholder">¶</span></div>
standard - Standardvärde som ska användas för null eller tom text. Standardkontrollen utförs efter den valfria formateringen och escape-konverteringen, d.v.s. efter att utdata har skrivits som de är.
Några exempel på hur <cq:text>
-taggen kan användas i en 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"/>
The <cq:setContentBundle>
-taggen skapar en i18n-lokaliseringskontext och lagrar den i javax.servlet.jsp.jstl.fmt.localizationContext
konfigurationsvariabel.
Den har följande attribut:
språk - Språket för det språkområde som resurspaketet ska hämtas för.
källa - Källan varifrån språkinställningen ska hämtas. Den kan ställas in på ett av följande värden:
static - språkinställningen hämtas från language
om det är tillgängligt, annars från serverns standardspråkområde.
page - språkinställningen hämtas från den aktuella sidans eller resursens språk, om tillgängligt, annars från language
om det är tillgängligt, annars från serverns standardspråkområde.
förfrågan - språkinställningen hämtas från den begärda språkinställningen ( request.getLocale()
).
auto - språkinställningen hämtas från language
om tillgängligt, annars från den aktuella sidans eller resursens språk, om tillgängligt, i annat fall från begäran.
Om source
inget attribut har angetts:
Om language
-attribut anges, source
som standard är " static
.
Om language
inget attribut har angetts, source
som standard för attribut till auto
.
Innehållspaketet kan användas av standard-JSTL <fmt:message>
-taggar. Nyckelsökningen efter meddelanden är två gånger:
SlingHttpServletRequest.getResourceBundle(Locale)
). Språket eller språkområdet för det här paketet definieras av språk- och källattributen för <cq:setContentBundle>
-tagg.The <cq:setContentBundle>
-taggen kan användas på följande sätt i ett jsp.
För sidor som definierar språk:
... %><cq:setContentBundle source="page"/><% %>
<div class="error"><fmt:message key="Hello"/>
</div> ...
För användaranpassade sidor:
... %><cq:setContentBundle scope="request"/><% %>
<div class="error"><fmt:message key="Hello"/>
</div> ...
The <cq:include>
-taggen innehåller en resurs på den aktuella sidan.
Den har följande attribut:
flush
bana
resourceType
script
ignoreComponentHierarchy
Exempel:
<%@taglib prefix="cq" uri="https://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>
Ska du använda <%@ include file="myScript.jsp" %>
eller <cq:include script="myScript.jsp" %>
om du vill inkludera ett skript?
<%@ include file="myScript.jsp" %>
-direktivet informerar JSP-kompilatorn om att inkludera en fullständig fil i den aktuella filen. Det är som om innehållet i den inkluderade filen klistrades in direkt i originalfilen.<cq:include script="myScript.jsp">
-taggen inkluderas filen vid körning.Ska du använda <cq:include>
eller <sling:include>
?
<cq:include>
.<cq:include>
I kan du direkt inkludera skriptfiler efter deras namn när du använder skriptattributet. Detta tar hänsyn till arv av komponent- och resurstyp och är ofta enklare än att följa Sling:s skriptupplösning med väljare och tillägg.<cq:includeClientLib>
Borttagen sedan AEM 5.6. <ui:includeClientLib>
ska användas istället.
The <cq:includeClientLib>
tagg Innehåller ett AEM HTML-klientbibliotek, som kan vara ett js, en css eller ett temabibliotek. För flera inkluderingar av olika typer, till exempel js och css, måste den här taggen användas flera gånger i jsp. Den här taggen är ett bekvämt omslag runt com.day.cq.widget.HtmlLibraryManager
tjänstgränssnitt.
Den har följande attribut:
kategorier - En lista med kommaavgränsade klientlibkategorier. Detta inkluderar alla JavaScript- och CSS-bibliotek för de angivna kategorierna. Temanamnet extraheras från begäran.
Motsvarar: com.day.cq.widget.HtmlLibraryManager#writeIncludes
tema - En lista med kommaavgränsade klientlibkategorier. Detta inkluderar alla temarelaterade bibliotek (både CSS och JS) för de angivna kategorierna. Temanamnet extraheras från begäran.
Motsvarar: com.day.cq.widget.HtmlLibraryManager#
writeThemeInclude
js - En lista med kommaavgränsade klientlibkategorier. Detta inkluderar alla JavaScript-bibliotek för de angivna kategorierna.
Motsvarar: com.day.cq.widget.HtmlLibraryManager#writeJsInclude
css - En lista med kommaavgränsade klientlibkategorier. Detta inkluderar alla CSS-bibliotek för de angivna kategorierna.
Motsvarar: com.day.cq.widget.HtmlLibraryManager#writeCssInclude
tema - En flagga som endast anger teman eller icke-teman för bibliotek ska inkluderas. Om det utelämnas inkluderas båda uppsättningarna. Gäller endast rena JS- eller CSS-inkluderingar (inte för kategorier eller teman).
The <cq:includeClientLib>
-taggen kan användas så här i en jsp:
<%-- 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" />
The <cq:defineObjects>
-taggen visar följande, ofta använda, skriptobjekt som utvecklaren kan referera till. Objekten som definieras av <sling:defineObjects>
-tagg.
componentContext
komponent
currentDesign
currentPage
currentStyle
designer
editContext
pageManager
pageProperties
egenskaper
resourceDesign
resourcePage
requestName
responseName
resourceName
nodeName
logName
resourceResolverName
slingName
componentContextName
editContextName
propertiesName
pageManagerName
currentPageName
resourcePageName
pagePropertiesName
componentName
designerName
currentDesignName
resourceDesignName
currentStyleName
Exempel
<%@page session="false" contentType="text/html; charset=utf-8" %><%
%><%@ page import="com.day.cq.wcm.api.WCMMode" %><%
%><%@taglib prefix="cq" uri="https://www.day.com/taglibs/cq/1.0" %><%
%><cq:defineObjects/>
När /libs/foundation/global.jsp
filen ingår i skriptet, <cq:defineObjects />
-taggen inkluderas automatiskt.
The <cq:requestURL>
-taggen skriver den aktuella begärande-URL:en till JspWriter. De två taggarna <cq:addParam>
och <cq:removeParam>
och kan användas inuti den här taggens brödtext för att ändra den aktuella begärande-URL:en innan den skrivs.
Du kan skapa länkar till den aktuella sidan med olika parametrar. Du kan till exempel omvandla din begäran:
mypage.html?mode=view&query=something
till mypage.html?query=something
.
Användning av addParam
eller removeParam
ändrar bara förekomsten av den angivna parametern, övriga parametrar påverkas inte.
<cq:requestURL>
saknar attribut.
Exempel:
<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>
The <cq:addParam>
lägger till en request-parameter med det angivna namnet och värdet i det omslutande <cq:requestURL>
-tagg.
Den har följande attribut:
name
value
Exempel:
<a title="filter results" href="<cq:requestURL><cq:addParam name="language" value="${bucket.value}"/></cq:requestURL>">${label} (${bucket.count})</a>
The <cq:removeParam>
taggen tar bort en request-parameter med det angivna namnet och värdet från den omslutande <cq:requestURL>
-tagg. Om inget värde anges tas alla parametrar med det angivna namnet bort.
Den har följande attribut:
name
Exempel:
<a href="<cq:requestURL><cq:removeParam name="language"/></cq:requestURL>">remove filter</a>
Sling-taggbiblioteket innehåller användbara Sling-funktioner.
När du använder Sling Tag Library i skriptet måste skriptet börja med följande kod:
<%@ taglib prefix="sling" uri="https://sling.apache.org/taglibs/sling/1.0" %>
När /libs/foundation/global.jsp
-filen inkluderas i skriptet, så deklareras sling-taglib automatiskt.
The <sling:include>
-taggen innehåller en resurs på den aktuella sidan.
Den har följande attribut:
flush
resurs
bana
resourceType
replaceSelectors
addSelectors
replaceSuffix
Resursens och skriptets upplösning som ingår i <sling:include>
-taggen är densamma som för en vanlig sling-URL-upplösning. Som standard används väljarna, tillägget och så vidare från den aktuella begäran även för det inkluderade skriptet. De kan ändras med taggattributen: replaceSelectors="foo.bar"
gör att du kan skriva över väljarna.
Exempel:
<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" />
The <sling:defineObjects>
-taggen visar följande, ofta använda, skriptobjekt som utvecklaren kan referera till:
slingRequest
slingResponse
resourceResolver
.sling
resurs
currentNode
logg
Innehåller en SLF4J-loggare för loggning till Sling-loggsystemet från skript, till exempel log.info("Kör mitt skript").
Den har följande attribut:
requestName
responseName
nodeName
l ogName resourceResolverName
slingName
Exempel:
<%@page session="false" %><%
%><%@page import="com.day.cq.wcm.foundation.forms.ValidationHelper"%><%
%><%@taglib prefix="sling" uri="https://sling.apache.org/taglibs/sling/1.0" %><%
%><sling:defineObjects/>
The JavaServer Pages Standard Tag Library innehåller många användbara och standardtaggar. Märkorden core, formatting och functions definieras av /libs/foundation/global.jsp
som i följande kodutdrag.
<%@taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="https://java.sun.com/jsp/jstl/fmt" %>
<%@taglib prefix="fn" uri="https://java.sun.com/jsp/jstl/functions" %>
Efter import av /libs/foundation/global.jsp
så som beskrivs ovan kan du använda c
, fmt
och fn
-prefix för att komma åt dessa taglibs. JSTL:s officiella dokumentation finns på Självstudiekursen Java™ EE 5 - JavaServer Pages Standard Tag Library.