Problem
Sie haben eine Komponente, in der Sie Selektoren deklariert haben.
- Es gibt keinen Komponentenkontext in der Anforderung.
- Die Komponente wird gerendert, die Vorlage jedoch nicht.
Lösung
JSP A ist in Ihrer Komponentendefinition als Komponentenskript definiert (Sie können nur eine definieren). Sie haben dann ein Glob für JSP B zur Komponentendefinition hinzugefügt. Wenn Komponente X in der Vorlage enthalten ist (entweder im Paragraphensystem oder mit Tag), ist der Komponenteneinbinder nur über JSP A als Komponentenskript informiert. Das ist das JSP, das in die Ausgabe der Vorlage JSP aufgenommen wird.
Das Globmuster aus der Komponentendefinition (für JSP B) wird der Vorlagendefinition hinzugefügt. Sie verhält sich genauso wie das direkte Hinzufügen von Globen zur Vorlagendefinition. Dieses Verhalten ist erwartet. Dies ist nützlich, wenn Ihre Komponente eine Anforderung für eine andere Ressource mit Bildern oder Ajax-Anforderungen generieren muss. In solchen Fällen müssen Sie wissen, was das Globmuster ist, wenn Sie die Komponente definieren.
Um das erwartete Verhalten zu erzielen, muss Ihre Komponente den Selektor aus der Anforderung abrufen und sie auf den Renderinhalt auf eine andere Art und Weise basieren. Fügen Sie der Komponentendefinition keinen Glob hinzu. Wenn Sie es in separate JSPs aufgeteilt werden soll, können Sie den Tag verwenden und dem Selektor eine andere JSP-Basis einfügen.
Die com.day.cq.delivery. Die Schnittstelle DeliveryHttpServletRequest definiert den öffentlichen String getSelectorString() und die öffentliche String getSelectors()-Methoden für die Arbeit mit Selektoren. Die JSP-Anforderung kann in CQ direkt in diese Schnittstelle umgewandelt werden.
Nachfolgend ist ein einfaches Beispiel aufgeführt. Aus Gründen der Einfachheit verwendet dieses Beispiel kein Paragraphensystem.
Herunterladen
Bei Ihrem Konto anmelden