問題点

JSP ページの1つに JSP を含めるディレクティブ <%include file= "path"%> を使用しています。メイン JSP ページがコンパイルされた後に、含まれた JSP への変更は有効になりません。
 
例:
 
2つの JSP ページを含むコンポーネントがあります。ページ1 ("titles")とページ2 ("children")。コンポーネントは開始するように定義されます

start.jsp:

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

start.jsp を変更すると、children.jsp および titles.jsp も再コンパイルされます。含まれている JSP のみを更新する場合、それらは再コンパイルされません。

解決策

動的なインクルード機構を使用します。1つの解決策は <cq:include file="path"> tag を使うことです。例:

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

追加情報

<%include file= "path"%>が JSP 要素を解析する静的ファイルを含む。このタイプのインクルードファイルは、インクルードされたページが静的である場合にのみ使用します。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー