读书人

关于tomcat项目下js如果用url的相对

发布时间: 2012-01-13 22:43:29 作者: rapoo

关于tomcat项目下,js如果用url的相对路径的问题
假设项目的路径如下:
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





[解决办法]

Java code
   request.getContextPath()+路径
[解决办法]
探讨
Java code
request.getContextPath()+路径

[解决办法]
Java code
request.getContextPath()+"/test2/test2.jsp"
[解决办法]
确实挺麻烦的,我试了也不行
这样可以
JScript code
<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>
[解决办法]
没解决掉的话,你可以用这种方法:在js里做个action,让它到action里处理
var url = "***.do?method=abc"

[解决办法]
有一种偷巧的办法:

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


[解决办法]
探讨
有一种偷巧的办法:

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

读书人网 >J2SE开发

热点推荐