2010-02-05 41 views
3

我試圖對包含多層嵌套包含的JSP文件進行一些調試。獲取源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指令是靜態的 - 內容包括在翻譯時,這樣一切都變得「」。

我真的,真的很喜歡沒有編輯/硬編碼的文件名到每個調試行我補充。

有沒有人有一個聰明的解決方案,以獲得JSP的「真正的」源文件名...如果它在另一個文件@included?

+1

我不知道這一點,但嘗試使用'' 2010-02-05 15:10:25

+0

@Teja - 遺憾的是它並沒有任何區別。我認爲這僅僅是個乾淨的標籤庫「包裝」來稱呼@包括 – scunliffe 2010-02-05 17:13:08

+0

好,我會嘗試是否有其他選擇。但如何與這些都有效,則檢查herehttp一個差異://www.jguru.com/faq/view.jsp EID = 13517 – 2010-02-05 18:02:13

回答

2

<jsp:include>轉化爲RequestDispatcher.include(..)和在請求時被評估,而不是靜態。所以請嘗試使用它。