关于tomcat项目下,js如果用url的相对路径的问题

highscore2 2008-12-19 02:57:20
假设项目的路径如下:
http://localhost:8080/project1/

当前页面 http://localhost:8080/project1/test/test1.jsp


我要在test1.jsp页面中用js 修改document.href.location属性为test2/test1.jsp
我的写法如下: document.href.location="/project1/test2/test2.jsp"
以上写法是可以的,但缺点是必须写死 /project1 这相根目录,当我的项目改名为project2 的时候,所有相关的js都要修改.
所以,我的问题是,js 能否用相对路径访问project1/test2/test.jsp?
我尝试过的做法: document.href.location="/test2/test2.jsp" 或 document.href.location="../test2/test2.jsp" 都不行,提示找不到这个url



...全文
684 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
our651 2008-12-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hbwhwang 的回复:]
有一种偷巧的办法:

你在JSP文件里面定义一个全局变量,比如 var baselocation;
<script language="javascript">
var baselocation=' <%=request.getContextPath()%>';
</script>
后面你就可以用它了
[/Quote]

这个是标准用法吧,struts in action中推荐的
hbwhwang 2008-12-19
  • 打赏
  • 举报
回复
有一种偷巧的办法:

你在JSP文件里面定义一个全局变量,比如 var baselocation;
<script language="javascript">
var baselocation='<%=request.getContextPath()%>';
</script>
后面你就可以用它了

wyj1983 2008-12-19
  • 打赏
  • 举报
回复
没解决掉的话,你可以用这种方法:在js里做个action,让它到action里处理
var url = "***.do?method=abc"
possibleonline 2008-12-19
  • 打赏
  • 举报
回复
确实挺麻烦的,我试了也不行
这样可以

<script type="text/javascript">
var pathname=window.location.pathname;
var arr=pathname.split("/");
var proName=arr[1];
window.location.href="/"+proName+"/test2/test2.jsp";
</script>
Danny 2008-12-19
  • 打赏
  • 举报
回复
路过,帮顶
highscore2 2008-12-19
  • 打赏
  • 举报
回复
是javascript 不能用jsp代码,因为我写在js文件内.

但是,我刚才新建了一个项目试了一下我提到的情况,好象又可以了,再看看为什么在另一个项目中不行.
xuhaiyang 2008-12-19
  • 打赏
  • 举报
回复

request.getContextPath()+"/test2/test2.jsp"
liuruifeng1983 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chengyu2099 的回复:]
Java code
request.getContextPath()+路径
[/Quote]

这个
chengyu2099 2008-12-19
  • 打赏
  • 举报
回复

request.getContextPath()+路径
highscore2 2008-12-19
  • 打赏
  • 举报
回复
上面的href.location应该改为 location.href

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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