关于使用jsp:include标签及先回忆一下二者的区别(对于此篇文章而言,二者在用法上没有区别)
jsp:include是先编译一下included.jsp文件,然后再包含(先编译,后包含)
@ include是先把文件包含就来,然后统一编译(先包含,后编译)
今天下午想把jquery集成到项目中,发现怎么样都会出问题。原因就是路径问题。
在集成时,我的思路是写一个公共jsp文件,里面包含一些常用的js文件,当然此处我用的就是jquery插件了。
但写完发现单独测试公共jsp是可以使用的,但包含公共jsp页面的页面却始终不能使用jquery,开始还以为是加载顺序的问题。
几经测试,终于发现了其中的问题。
由于做的项目文件较多,故文件都不放在一个文件夹下:在公共jsp页面中,有
复制代码 代码如下:
在调用它的时候,有:
但这样很可能导致错误。
原因是,include之后,公共jsp被加载到自己的jsp,则jqueryr的相对位置已经发生了变化。即公共jsp把jquery的相对位置传给了自己的jsp,但自己的jsp以自身为标准,通过路径就找不到jquery插件了。简单地说,就是如果用相对路径,则公共jsp中的路径就应该是相对自己jsp的路径了。
但这样显然失去了它是公共jsp的意义,因此在这里用绝对路径来做:
复制代码 代码如下:
string tpath = request.getcontextpath();
string tbasepath = request.getscheme()+://+request.getservername()+:+request.getserverport()+tpath+/;
%>
这样,只要在自己的jsp页面中引入公共jsp就可以了。