jsp include file="" 结合页面图片无法显示

来源:百度知道 编辑:UC知道 时间:2024/06/15 19:45:04
有两个页面1个主页index.jsp一个a.jsp,a.jsp中有图片
在index.jsp中用<%@ include file="jsp/a.jsp" %>插入a页面。
打开index.jsp,a.jsp页面中的图片无法显示。
单独打开a.jsp 能显示图片,右键图片属性,图片地址是:http://localhost:8080/company/images/123.jpg
打开index.jsp页面右键图片属性,图片地址是
http://localhost:8080/images/123.jpg
工程名没了?这是为什么?怎么解决?谢谢大家!
把a.jsp的图片路径前面加上jsp/就能解决主页显示的问题,但是a.jsp就单独显示不了,要是不建JSP的文件夹把页面都直接放在WebRoot文件夹就都可以显示,到了工作上开发都不用建JSP的文件夹吗?把页面都直接放在WebRoot文件夹下面吗?

这是你的路径有问题。
你可能images文件夹放在了jsp文件夹内,而jsp文件夹外有index.jsp,jsp文件夹内有a.jsp。运行index.jsp时相当于把a.jsp的代码写到到index.jsp中形成一个jsp开始运行,而不会先运行index.jsp再运行a.jsp再运行index.jsp,而是一直在jsp文件夹外运行index.jsp这个页面,这样通过images/123.jpg 不可能找到图片,因为在jsp文件夹外没有images文件夹,必须jsp/images/123.jpg 这样会找到图片;单独运行a.jsp可以成功,这是因为在jsp文件夹内能够找到images/123.jpg ;如果你的index.jsp和a.jsp不在一个目录下,肯定只能一个页面运行正常啊,因为他们路径不同。现在工作中编程通常像你那样用eclipse,而且不能所有jsp文件放在一个目录下,就是需要建立jsp文件夹和更多文件夹,这样到了大项目有很大好处啊。而且只要运行index.jsp即可,a.jsp仅仅是被用来调用的,不需要运行啊!!!你的调用语句有错,<%@ include file="jsp/a.jsp" %>调用静态文件,a.jsp是动态文件,应该改为这样调用:<jsp:include page="jsp/a.jsp"/>

就是你路径不对 加一个/就OK了 file="/jsp/a.jsp"

因为在<%@ include file="xx.xxx" %>
只是加载得静态文件。不检查文件得内容,应该是路径问题,在index.jsp里,只会把页面内容加载进去,而在a.jsp中图片得路径相对项目得,而在index.jsp中相对index.jsp 得路径