Les pages JSP incluses ne sont pas recompilées

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.

Logo Adobe

Accéder à votre compte