Le pagine JSP incluse non vengono ricompilate

Problema

Stai utilizzando jsp include direttiva<%include file= "path"%> in una delle pagine JSP. Dopo che la pagina principale di JSP è stata compilata, le modifiche allo stesso JSP non hanno effetto.   Esempio:   Hai un componente che include altre due pagine di JSP: pagina 1 ("titles") e pagina 2 ("children"). Il componente è definito per iniziare con

start.jsp:

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

Se cambiate start.jsp, allora anche children.jsp e titoli.jsp sono ricompilati. Se si aggiornano solo i JSP inclusi, non vengono ricompilati.

Soluzione

Utilizzare un meccanismo di inclusione dinamica. Una possibile soluzione è quella di utilizzare il tag <cq:include file="path" >. Esempio:

<%@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" /> <%}%>

Informazioni aggiuntive

<%include file= "path"%> include un file statico, analizzando gli elementi del file JSP. Utilizzare questo tipo di inclusione solo se la pagina inclusa è statica.

 Adobe

Ottieni supporto in modo più facile e veloce

Nuovo utente?

Adobe MAX 2024

Adobe MAX
La conferenza sulla creatività

14-16 ottobre Miami Beach e online

Adobe MAX

La conferenza sulla creatività

14-16 ottobre Miami Beach e online

Adobe MAX 2024

Adobe MAX
La conferenza sulla creatività

14-16 ottobre Miami Beach e online

Adobe MAX

La conferenza sulla creatività

14-16 ottobre Miami Beach e online