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.

 Adobe

Recevez de l’aide plus rapidement et plus facilement

Nouvel utilisateur ?

Adobe MAX 2024

Adobe MAX
La conférence sur la créativité

Du 14 au 16 octobre à Miami Beach et en ligne

Adobe MAX

La conférence sur la créativité

Du 14 au 16 octobre à Miami Beach et en ligne

Adobe MAX 2024

Adobe MAX
La conférence sur la créativité

Du 14 au 16 octobre à Miami Beach et en ligne

Adobe MAX

La conférence sur la créativité

Du 14 au 16 octobre à Miami Beach et en ligne