Problème

Vous utilisez la directive pour JSP inclus <%include file= "path"%> dans l’une de vos pages JSP. Une fois la page principale JSP compilée, les modifications apportées à l’objet JSP inclus ne prennent effet.
 
Par exemple :
 
Vous avez un composant qui comprend deux autres pages JSP : page 1 (« titres ») et page 2 (« enfants »). Le composant est défini de telle sorte qu’il démarre avec

start.jsp:

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

Si vous modifiez start.jsp, alors children.jsp et titles.jsp sont également comptabilisés. Si vous mettez uniquement à jour les JSP inclus, ils ne sont pas comptabilisés.

Solution

Utilisez un mécanisme d’inclusion dynamique. Une solution possible consiste à utiliser la balise <cq:include file="path">. Par exemple :

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

Informations supplémentaires

<%include file= "path"%> comprend un fichier statique, qui analyse le fichier des éléments JSP. Utilisez ce type d’inclusion uniquement si la page incluse est statique.

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne