有两个页面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文件夹下面吗?
jsp include file="" 结合页面图片无法显示
答案:3 悬赏:30 手机版
解决时间 2021-02-11 16:57
- 提问者网友:黑米和小志
- 2021-02-11 00:42
最佳答案
- 五星知识达人网友:怀裏藏嬌
- 2021-02-11 01:55
这是你的路径有问题。
你可能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是动态文件,应该改为这样调用:
你可能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是动态文件,应该改为这样调用:
全部回答
- 1楼网友:像个废品
- 2021-02-11 03:08
因为在<%@ include file="xx.xxx" %>
只是加载得静态文件。不检查文件得内容,应该是路径问题,在index.jsp里,只会把页面内容加载进去,而在a.jsp中图片得路径相对项目得,而在index.jsp中相对index.jsp 得路径
- 2楼网友:人類模型
- 2021-02-11 02:40
你在a.jsp中把所有的图片链接前加一个jsp/
应为图片链接都是一些静态的东西,不管你是用<%@ include file="/jsp/a.jsp" %> 还是 ,它都是先把文件加载了再处理里面的代码 。所以当在index.jsp中处理时,当然找不到图片了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯