2016-04-29 21 views
1

Ich habe eine JSTL, die zum Reinigen der HTML-Fragment zwischen dem Tag aus einer JSP-Datei verwendet wird. Aber im aktuellen Szenario sind alle meine Komponenten in Sichtweite. Ich möchte dasselbe erreichen. Ist es möglich, dieses Tag irgendwie zu benutzen?Verwendung von jstl in sightly

Antwort

0

Sie können keine JSP-Tags in sightly verwenden (es ist ein HTML nicht ein JSP am Ende). Die aktuelle Implementierung erlaubt auch keine benutzerdefinierten Tags zu definieren.

1

Sie können nicht JSP-Tag-Bibliotheken in Sightly verwenden, aber es gibt eine Möglichkeit, die Sie umgehen können.

Sie können andere Skripts in Ihr Sightly-Skript einfügen, indem Sie das Attribut data-sly-include verwenden.

Hier ist, was es tut nach the documentation:

den Inhalt des Host-Elements mit dem Markup durch die angegebenen HTML-Template-Datei (Sightly, JSP, ESP etc.), wenn es verarbeitet wird, das erzeugt Ersetzt durch entsprechende Template-Engine. Der Renderkontext der enthaltenen Datei enthält nicht den aktuellen Sightly-Kontext (den der Include-Datei); Folglich ist für die Aufnahme von Sightly Dateien, würde die aktuelle data-sly-use haben in der Datei enthalten

und mehr auf Sightly/JSP interoperability

wiederholt zu bewegen ist zu Sightly nicht unbedingt ein Alles-oder-Nichts-Wahl, weil in Sightly geschriebene Komponenten mit Komponenten kompatibel sind, die in JSP oder ESP geschrieben wurden. Das bedeutet, dass bestehende Projekte ohne Probleme Sightig für neue Komponenten verwenden können, während JSP für vorhandene Komponenten beibehalten wird.

Auch innerhalb der gleichen Komponente können Sightly-Dateien neben JSPs und ESPs verwendet werden. Zum Beispiel kann eine JSP eine Sightly Datei wie folgt umfassen,

<cq:include script="footer.html"/>

und eine Sightly Datei kann eine JSP wie folgt umfassen,

<div data-sly-include="footer.jsp"></div>

Wenn Sie sicherstellen, dass die Taglib ist für die JSP sichtbar (die entsprechenden Include in Ihrer JSP oder die global.jsp, auf die es sich bezieht), Sie sollten die Taglib in einer JSP verwenden können und dann auf die JSP in Ihren Sightly-Dateien verweisen.

Als Alternative könnten Sie eine Verwendungsklasse oder ein Sling-Modell in Java schreiben, das ähnliche Funktionen wie das benutzerdefinierte Tag implementiert.

Es könnte einen anderen, eleganteren Weg geben, um das gewünschte Ergebnis zu erzielen, aber es ist schwer zu sagen, ohne zu wissen, was genau das fragliche Tag machen soll.

+0

@HariomTomar, das klingt wie etwas, das Sie aus AEM heraushalten möchten. Haben Sie darüber nachgedacht, 'mod_pagespeed' auf Apache einzurichten? Wenn Sie bei der Sightly-Lösung bleiben möchten, sollten Sie eine JSP aufrufen, in der Sie das Tag verwenden. – toniedzwiedz

+0

Das Tag nimmt den HTML-Code zwischen dem Tag und minimiert es. Zum Beispiel: - ' ' –

+0

Auf diese Weise muss ich eine JSP-Datei über den HTML-Code und eine darunter enthalten.Öffnen des Tags in einem und Schließen des anderen, was offensichtlich zu einer JSP-Analyse-Ausnahme führt. –