在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的設置要配置好)。
以上就是Struts2中路徑問題的全部內容,希望能給大家一個參考,也希望大家多多支持武林網。