因为静态Include指令引入外部jsp文件与源jsp文件均含有引入的Bootstrap的js文件而导致效果冲突的问题

  如果你的一个jsp文件使用Bootsrap的内容,那么你可能会引入了Bootsrap的依赖的js库。而此时如果你在页面中使用<%@include file="xxx.jsp" %>指令再次引入一个jsp文件,并且该引入的文件同样含有Bootstrap的样式。
  如果此时你在引入的文件中同样引入Bootstrap依赖的js文件,那么可能对导致某些Bootstrap的效果失效!比如响应式导航栏在小于768px并且被点击展开时,你再次点击汉堡按钮,但是被展开的导航菜单不能被隐藏起来。这就可能是因为重复引入了js库的原因!
  解决办法是,要么你把使用include指令引入文件的jsp文件内的Bootstrap依赖的js文件删除,要么你把被引入的jsp文件内的Bootstrap依赖的js文件删除。
  实际上静态include会合并静态文档或Jsp页面中的内容,可以用于包括动态生成的输出结果,因此可以包含一个Servlet。include指令是在编译期合并为一个文档的,因此你在编写被引入的jsp文件时,可以省略部分重复的内容,即引入文件与被引入文件公有的一些声明或者标签,因为它们会被合并。
  但因此,也要防止被包含页面和包含页面之间存在的冲突。本身原来的页面里面就可能有一些page属性,比如指定编码格式等,page和包含的文件之间不要冲突,如果冲突的话,就会出错。以及两个页面上声明的java变量也必须具有唯一性!

发布了29 篇原创文章 · 获赞 47 · 访问量 8218

猜你喜欢

转载自blog.csdn.net/weixin_43767015/article/details/89368231