Problem

Sie verwenden die jsp-Include-Direktive <%include file= "path"%> in einer Ihrer JSP-Seiten. Nachdem die JSP-Hauptseite kompiliert wurde, werden Änderungen an der eingebundenen JSP nicht mehr wirksam.
 
Beispiel:
 
Sie haben Komponente, die zwei weitere JSP-Seiten enthält: Seite 1 ("title") und Seite 2 (die untergeordneten Elemente). Die Komponente ist so definiert, dass sie mit

start.jsp:

... <% String[] selector = cqReq.getSelectors(); if (selector.length>0) { if (selector[0].equals("child")) { %> <%@ include file="children.jsp" %> <% } } else {%> <%@ include file="titles.jsp" %> <% } ... %>

Wenn Sie start.jsp ändern, werden auch children.jsp und titles.jsp neu kompiliert. Wenn Sie nur die enthaltenen JSPs aktualisieren, werden sie nicht neu kompiliert.

Lösung

Verwenden Sie einen dynamischen Include-Mechanismus. Eine mögliche Lösung ist die Verwendung von <cq:include file="path"> tag. Beispiel:

<%@page import="com.day.cq.delivery.DeliveryHttpServletRequest"%>

<%@ taglib uri="/cqtlb" prefix="cq" %>

<cq:setpath name="/apps/designground/templates/test" />

<%

DeliveryHttpServletRequest cqReq = (DeliveryHttpServletRequest)request; String[] selector = cqReq.getSelectors();

if (selector.length>0) {

if (selector[0].equals("child")) {

%>

<cq:insertfile name="children.jsp" />

<% }

} else { %>

<cq:insertfile name="titles.jsp" /> <%}%>

Weitere Informationen

<%include file= "path"%> enthält eine statische Datei, die die JSP-Elemente der Datei analysiert. Verwenden Sie diesen include nur, wenn die eingeschlossene Seite statisch ist.

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