今天要讲的是重定向的问题
我的项目是点一个链接,跳出一个文档列表,链接的地址是documents.action,然后在出现的文档中有删除的功能,一删除某个文档,就跳回原来的文档列表,这里用到了重定向。在struts.xml文件中配置delete.action的返回结果就是document.action。这里就出问题了,因为我在文档列表的页面中引入图片时,用的是相对路径,图片放在当前jsp页面的上一级路径,所以当重定向后,引入图片的地址就变了。
举例说在一个项目struts下,document.jsp放在jsp文件夹下,而图片1.gif放在与jsp同目录的struts下,那么当直接显示document.jsp时,图片的地址是http://localhost:8080/struts/1.jsp,而我点击删除某个文档再跳回的文档列表页面中,图片的地址变为了http://localhost:8080/1.jsp。这样图片当然是显示不出来的。
那么你要说要用绝对路径了,但是我对绝对路径真的非好感,如果用本地文件的绝对路径,要是把项目换个盘放放,那岂不是都要改路径了?如果用网上的图片,那么断网的时候就显示不出来了,而且说不定什么时候那网站就把图片资源删了,所以我挺烦浏览某些网页的时候图片不存在就显示不出来。
我们一个小组的人还挺郁闷的,商量好久解决不了,因为重定向经常用到,老师说要么直接显示文档的时候也用重定向,可是这毕竟不是解决的办法。
以下就是重点了:
就是
使用base href
在每一个jsp文件顶部加入以下代码
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <base href="<%=basePath%>">
<img src='images/go.gif'/>
这样问题就解决了!感慨很多,也许问题很弱智,但是希望对你有用啦!
我的项目是点一个链接,跳出一个文档列表,链接的地址是documents.action,然后在出现的文档中有删除的功能,一删除某个文档,就跳回原来的文档列表,这里用到了重定向。在struts.xml文件中配置delete.action的返回结果就是document.action。这里就出问题了,因为我在文档列表的页面中引入图片时,用的是相对路径,图片放在当前jsp页面的上一级路径,所以当重定向后,引入图片的地址就变了。
举例说在一个项目struts下,document.jsp放在jsp文件夹下,而图片1.gif放在与jsp同目录的struts下,那么当直接显示document.jsp时,图片的地址是http://localhost:8080/struts/1.jsp,而我点击删除某个文档再跳回的文档列表页面中,图片的地址变为了http://localhost:8080/1.jsp。这样图片当然是显示不出来的。
那么你要说要用绝对路径了,但是我对绝对路径真的非好感,如果用本地文件的绝对路径,要是把项目换个盘放放,那岂不是都要改路径了?如果用网上的图片,那么断网的时候就显示不出来了,而且说不定什么时候那网站就把图片资源删了,所以我挺烦浏览某些网页的时候图片不存在就显示不出来。
我们一个小组的人还挺郁闷的,商量好久解决不了,因为重定向经常用到,老师说要么直接显示文档的时候也用重定向,可是这毕竟不是解决的办法。
以下就是重点了:
就是
使用base href
在每一个jsp文件顶部加入以下代码
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <base href="<%=basePath%>">
<img src='images/go.gif'/>
这样问题就解决了!感慨很多,也许问题很弱智,但是希望对你有用啦!