在struts2中的路径问题是根据Action的路径而不是JSP的路径确定的,所以尽量不要使用相对路径,使用相对路径会让路径问题变得很繁琐很麻烦,有的时候一个细微的变动会导致你需要大的改动。
解决方法其实也很简单:即统一使用绝对路径。
在jsp中可以通过request.getContextRoot的方式获得webapp的绝对路径:
复制代码 代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
以上方式很明确,path字符串获得是webapp的路径,然后basePath获得的是整个项目的根路径(注:已经含有了最后的“/”)
在使用时只需调用basePath即可(以跳转到index为说明):
复制代码 代码如下:
<a href="<%=basePath %>index.jsp">index.jsp</a>
其中<a></a>代表的是超链接,这样就可以跳转到xxxxx/index了(前提是你的namespace和Action的设置要配置好)。
时间: 2024-10-31 11:14:04