自学习web开发以来,就
会常被路径的问题所困扰,今天稍作总结struts2中的路径问题。
1。在一个jsp页面中,如path.jsp,一个超链接<a href="index.jsp">index</a>,本来是这两个jsp页面都在项目的根目录下,这样会访问到,其实不然。超链接会在当前action路径下去找这个index.jsp文件,如
http://localhost:8080/Struts2_0200_Namespace/path/path.jsp,点击超链接后,路径变为
http://localhost:8080/Struts2_0200_Namespace/path/index.jsp
2.所以就是要用绝对路径。<a href="/index.jsp">index</a>。但是这样的结果就是跳到了服务器根目录下 了。http://localhost:8080/index.jsp
3.使用Myeclipse定义的basePath。
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
以上定义的basePath=“http://localhost:8080/Struts2_0200_Namespace/”,这样可以在超链接中这样定义:
<a href="<%=basePath%>index.jsp">index</a>
4.使用head标签里的base标签
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<head>
<base href="<%=basePath%>">
</head>
这代表了在jsp页面里的所有连接都是以这个为根目录的,直接写链接就可以了。
<a href=“index.jsp">index</a>
1。在一个jsp页面中,如path.jsp,一个超链接<a href="index.jsp">index</a>,本来是这两个jsp页面都在项目的根目录下,这样会访问到,其实不然。超链接会在当前action路径下去找这个index.jsp文件,如
http://localhost:8080/Struts2_0200_Namespace/path/path.jsp,点击超链接后,路径变为
http://localhost:8080/Struts2_0200_Namespace/path/index.jsp
2.所以就是要用绝对路径。<a href="/index.jsp">index</a>。但是这样的结果就是跳到了服务器根目录下 了。http://localhost:8080/index.jsp
3.使用Myeclipse定义的basePath。
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
以上定义的basePath=“http://localhost:8080/Struts2_0200_Namespace/”,这样可以在超链接中这样定义:
<a href="<%=basePath%>index.jsp">index</a>
4.使用head标签里的base标签
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
这代表了在jsp页面里的所有连接都是以这个为根目录的,直接写链接就可以了。
<a href=“index.jsp">index</a>