2014-10-02 22 views
0

我正在嘗試在另一個JSP中使用指令的include JSP頁面。在JSP中包含指令中的文件時出錯

我的代碼是:

<%@include file="${pageContext.request.contextPage}/Pages/Loader/ 
load-resources.jsp" %> 

正如你可以清楚地看到這裏我的網址應該像

localhost://port/WebApp1/Pages/Loader/load-resources.jsp 

但在執行我收到此錯誤,說這個網址不存在。但是我從contextPage引用了url。

Caused by: org.apache.jasper.JasperException: PWC6117: File 
"/Pages/Test/Take/${pageContext.request.contextPage}/Pages/Loader/ 
load-resources.jsp" not found 

如何解決此問題?

+0

EL是否在頁面上的其他任何地方工作?我甚至不確定你可以在這樣的指令中使用EL。爲什麼你甚至需要*,你不能只使用絕對路徑嗎? – 2014-10-02 09:24:11

+0

什麼是EL @DaveNewton?而不是contextPage返回絕對路徑的開始?我不認爲整個網址是相對的。 – 2014-10-02 09:25:16

+0

EL只是'$ {...}'訪問變量的方式。 – 2014-10-02 09:32:35

回答

0

好吧,如果你想包括Pages/Loader/load-resources.jsp,只需使用:

<%@include file="/Pages/Loader/load-resources.jsp" %> 

你不包括URL,但文件。層次結構的根就是您的Web應用程序的根。

順便說一句,你知道的指令<%@include ... %>和標籤<jsp:include .../>之間的區別:

  • 與指令,你包括源文件,這意味着所有頁面的上下文變量將被共享
  • <jsp:include .../>,你包括在輸出水平,這意味着每個頁面將有自己的頁面上下文