3

複数レベルのネストされたインクルードを含む 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されている場合は?

4

1 に答える 1

2

<jsp:include>RequestDispatcher.include(..)静的ではなく、リクエスト時に変換および評価されます。というわけで使ってみてください。

于 2010-02-05T19:14:35.073 に答える