J2EE 關於JSP中include標籤動態引入其他檔案的問題

來源:互聯網
上載者:User

    最近閑來無事在慢慢練習搭建開發架構,遇到了很多問題,GOOGLE經常被斷網,無奈弄了個VPN,技術類東西還是喜歡用GOOGLE查。再一個REDZ.COM這個搜尋引擎也非常好用,搜出來的垃圾站很少。都是題外話。

    用架構做的應用,差不多每個頁面都要包含一些架構需要並且通用的JS指令碼以及CSS樣式表,這樣我就想專門做一個JSP頁面用來輸出引用通用的JS指令碼以及CSS樣式表的HTML代碼。然後需要引用通用JS指令碼以及CSS樣式表的JSP頁面就通過include標籤進行引用。這樣可以保證應用所有頁面引用架構指令碼以及CSS樣式表的統一性。架構發生變更只需要修改這一個JSP檔案即可。當然,最好的是辦法還是使用自訂標籤對引入JS指令碼等的HTML代碼進行輸出,這樣有利於前端開發人員與伺服器端開發人員更好的獨立處理自己那部分工作。

   最初因為路徑問題嘗試這樣使用include標籤, 結果當然是無法找到資源,開始我以為這裡無法使用<%= %>進行輸出。

    <jsp:include page="<%=path %>/jsp/commonCssAndJs.jsp" flush="true" />

    使用了這列標籤後,控制台顯示了錯誤資訊。重新整理多次,有的時候錯誤為: attribute for %>" is not properly terminated
,有的時候錯誤為:File &quot;/apps/dms/jiaoyanke/&lt;%= path %&gt;/jsp/commonCssAndJs.jsp&quot; not found

   後來查了下 dynamic include 相關的文章,再加上自己的嘗試,總結如下:

    1. 標籤的page屬性值可以是相對路徑URL或者<%= 運算式 %>,但只能同時存在其中一種。參考:.http://java.sun.com/products/jsp/tags/11/syntaxref1112.html 

    2. 當page屬性值為相對路徑URL時 , 樣本:

        假如Tester.jsp 中引用 beIncluded.jsp

        Tester的相對路徑為/apps/jsp/Tester.jsp. 則如果Tester.jsp中include標籤的page屬性為"/app2/beIncluded.jsp",則會引用相對路徑為檔案/app2/beIncluded.jsp.
        當page屬性為"app2/beIncluded.jsp"時則引用相對路徑為/apps/jsp/app2/beIncluded.jsp 這個檔案

    3. 當page屬性值為<%= 運算式%>時,其實路徑規則與上邊是一樣的,但是需要注意的是:

            page屬性值的雙引號中只能以後面的形式存在  "<%= path %>" ,"<%= path %>/***.jsp"這樣是不行的,甚至引號與<%=%>之間連空格也不能存在,即"   <%= path %>"
也是不行的。如果雙引號和<%= path %>間存在空格則<%= path %>會作為一個字串直接進行解釋。控制台會提示找不到路徑為"  <%= path %>"的檔案這樣的錯誤。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.