熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Javascript >> 正文

關於include標簽導致js路徑找不到的問題分析及解決

2013-11-23 18:16:44  來源: Javascript 

  關於使用jsp:include標簽及<%@ include標簽時要注意的事項
先回憶一下二者的區別(對於此篇文章而言二者在用法上沒有區別)
jsp:include是先編譯一下includedjsp文件然後再包含(先編譯後包含)
@ include是先把文件包含就來然後統一編譯(先包含後編譯)
今天下午想把Jquery集成到項目中發現怎麼樣都會出問題原因就是路徑問題
在集成時我的思路是寫一個公共JSP文件裡面包含一些常用的js文件當然此處我用的就是Jquery插件了
但寫完發現單獨測試公共JSP是可以使用的但包含公共JSP頁面的頁面卻始終不能使用JQuery開始還以為是加載順序的問題

幾經測試終於發現了其中的問題
由於做的項目文件較多故文件都不放在一個文件夾下在公共JSP頁面中

復制代碼 代碼如下:
<%@ page language="java" import="javautil*" pageEncoding="utf"%>
<script type="text/javascript" src="js/jqueryminjs"></script>
<script type="text/javascript">
$(function(){
alert(hello);
});
</script>

  
在調用它的時候
<%@ include file="//common_extjsp"%>
但這樣很可能導致錯誤

原 因是include之後公共JSP被加載到自己的JSP則JQueryr的相對位置已經發生了變化即公共JSP把JQuery的相對位置傳給了自 己的JSP但自己的JSP以自身為標准通過路徑就找不到Jquery插件了簡單地說就是如果用相對路徑則公共JSP中的路徑就應該是相對自己 jSP的路徑了
但這樣顯然失去了它是公共JSP的意義因此在這裡用絕對路徑來做

復制代碼 代碼如下:
<%@ page language="java" import="javautil*" pageEncoding="utf"%>
<%
String tPath = requestgetContextPath();
String tBasePath = requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort()+tPath+"/";
%>
<script type="text/javascript" src="<%=tBasePath%>js/jqueryminjs"></script>
<script type="text/javascript">
$(function(){
alert(hello);
});
</script>

  
這樣只要在自己的jSP頁面中引入公共JSP就可以了


From:http://tw.wingwit.com/Article/program/Java/Javascript/201311/25490.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.