(1)struts2中的路径问题是根据action的路径而不是jsp路径来确定的,所以尽量不要使用相对路径
(2)虽然可以使用redirect方式解决,但是redirect方式并非必要
(3)解决方法非常简单,统一使用绝对路径。(在jsp中用request.getContextRoot方式拿到webapp的路径)或者使用myeclipse经常用的指定basepath.
struts.xml
<span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="path" namespace="/path" extends="struts-default">
<action name="path" class="com.dqpi.eonline.IndexAction1">
<result name="path">
/path.jsp
</result>
</action>
</package>
</struts>
</span>
IndexAction1.java
<span style="font-size:18px;">package com.dqpi.eonline;
public class IndexAction1 {
public String execute() {
return "path";
}
}
</span>
index.jsp
<span style="font-size:18px;"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!--此处使用了myeclipse中经常使用的basepath -->
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<a href="path/path.action">路径问题说明</a>
</body>
</html>
</span>
path.jsp
<span style="font-size:18px;"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!-- 此处引进了struts的标签库 -->
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<span style="color:#ff0000;"><base href="<%=basePath%>"></span>
<title>My JSP 'path.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<a href="index.jsp">index.jsp</a><br>
</body>
</html>
</span>