请教一个图片显示路径问题(struts2)

cyc123007512 2010-01-14 09:58:51
struts2 访问页面的请求如下:
<dirurl>/consumption/queryAction.action</dirurl>

admin/adminlist.jsp中的路径显示图片:
<img src="../images/lgo_0hm_129x36.on.gif" width="129" height="33">

其中 images和admin目录同级。

点击请求进去页面看不到图片,在myclipse的preview中可以看到

换成:
<img src="images/lgo_0hm_129x36.on.gif" width="129" height="33">

点击请求进去页面可以看到图片,在myclipse的preview中却看不到

请问一下怎么解决

...全文
396 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyc123007512 2010-01-14
  • 打赏
  • 举报
回复
问题已解决了,按照licip的方法,不过有点区别,在页面中加入如下代码:
<%
String path = request.getContextPath();
String path1 = request.getServletPath();
int i = path1.lastIndexOf("/");
String path2 = path1.substring(0,i);
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + path2 + "/";
request.setAttribute("basepath",basePath);
%>

<base href="<%=request.getAttribute("basepath")%>"/>

谢谢大家的帮助

蛋黄车 2010-01-14
  • 打赏
  • 举报
回复
我以前也遇到过这个问题,最后发现是自己的错。我在从servlet中跳到jsp页面的时候没有考虑到servlet在web.xml中也有自己相应的路径,从而造成了页面图片全部显示不正确。

首先可以肯定的是这是一个路径错误的问题。

检查你是从哪个地方(比如:A)跳转到了这个页面。然后检查从A到你这个页面的路径,是相对路径,而不是绝对路径。

最笨的方法就是所有的图片路径全部换成绝对路径(这里需要注意的是“/”后面跟的内容必需是从上下文后开始的)。

在myeclipes里图片的预览功能是以图片所在的jsp为基准寻找图片位置,实现预览功能的,即相对路径。但是你在页面中写的路径是绝对路径,所以预览功能就不能正常显示了

建议你多做一些相对路径和绝对路径方面的练习。
cyc123007512 2010-01-14
  • 打赏
  • 举报
回复
谢谢你。不过还是不行,点击请求进去页面可以看到图片,在myclipse的preview中却看不到
我希望两边都能看到
[Quote=引用 7 楼 redlotus_lyn 的回复:]
<img src=" <s:url value="/images/lgo_0hm_129x36.on.gif" />" />
[/Quote]
redlotus_lyn 2010-01-14
  • 打赏
  • 举报
回复
<img src="<s:url value="/images/lgo_0hm_129x36.on.gif" />" />
cyc123007512 2010-01-14
  • 打赏
  • 举报
回复
试了,还是没显示
[Quote=引用 5 楼 licip 的回复:]
你在JSP页面上加: <%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
然后在head中
    <base href=" <%=basePath%>">
这样,它全部的路径不是从根路径开始了吗?
[/Quote]
licip 2010-01-14
  • 打赏
  • 举报
回复
你在JSP页面上加:<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
然后在head中
<base href="<%=basePath%>">
这样,它全部的路径不是从根路径开始了吗?
子龙奶爸 2010-01-14
  • 打赏
  • 举报
回复
看看你地址栏上的路径。根据那个来改改试试。
执行起来没问题就可以了啊。相对路径,你的位置不同肯定就可以显示不到啊。myclipse不怎么用。
dafeicao 2010-01-14
  • 打赏
  • 举报
回复
你此时所在的路径是 项目/consumption/ 路径下... ../当然找不到你要去的地方
cyc123007512 2010-01-14
  • 打赏
  • 举报
回复
以前用struts1的时候在jsp头部加个<html:base/>就搞定 ,现在不知怎么办
waterdr 2010-01-14
  • 打赏
  • 举报
回复
直接写全路径试试
cyc123007512 2010-01-14
  • 打赏
  • 举报
回复
搞定了啊,10楼那里,多加几行代码就两边可以看到了
[Quote=引用 11 楼 maer56 的回复:]
7楼的答案是正确的,你想要两边都能看到是不行的。
鱼和熊掌不可兼得。
[/Quote]
maer56 2010-01-14
  • 打赏
  • 举报
回复
7楼的答案是正确的,你想要两边都能看到是不行的。
鱼和熊掌不可兼得。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧