複数レベルのネストされたインクルードを含む JSP ファイルをデバッグしようとしています。
例えば
foo.jsp
<%@ include file="bar.jsp"%>
bar.jsp
<%@ include file="baz.jsp"%>
baz.jsp
<%@ include file="boz.jsp"%>
特定のファイルが実際に含まれている場所を特定するために、さまざまなファイルに JavaScript アラートを出力する単純な行を配置して、ページがレンダリングされたときにそれをキャッチできるようにしました。
例 (読みやすくするために複数の行にフォーマットされています)
<script type="text/javascript">
alert('Accessing File: <%=this.getName()%>' +
'\n\nCompiled as: <%=pageContext.getPage().getClass().getName()%>' +
'\n\nRequested by: <%=request.getRequestURI()%>');
</script>
したがって、理想的には、これを注入した場合に見たいものbaz.jsp
は次のとおりです。
ファイルへのアクセス: baz.jsp
次のようにコンパイル: _foo__jsp.java
要求元: foo.jsp
ただし、<%@include%>
JSP ディレクティブは静的であるため、コンテンツは変換時に含まれるため、すべてが「foo」になります。
追加する各デバッグ行にファイル名を編集/ハードコードする必要がないようにしたいです。
JSPの「真の」ソースファイル名を取得するための賢い解決策はありますか...それが別のファイルに@includeされている場合は?