现在的位置: 首页 > 综合 > 正文

Struts2 学习笔记04 路径问题

2019年09月01日 ⁄ 综合 ⁄ 共 1936字 ⁄ 字号 评论关闭

  今天学习下路径问题,Struts2 里路径根据action路径,而不是jsp路径,所以我们不要使用相对路径,简单做个试验说明一下。

struts.xml

<?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>

 

    <!-- Add packages here -->
    <constant name="struts.devMode" value="true" />
    <package name="front" namespace="/path" extends="struts-default">
    
		<action name="hell" class="com.tfj.strut2.Path">
			<result name="success">
				/JSP/path.jsp
			</result>
		</action>
       
    </package>
    

</struts>

我把两个jsp文件放在Jsp文件夹里。

先访问http://localhost:8080/Struts2_0400_Path/path/hell。

path.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
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>
    <base href="<%=basePath%>">
    
    <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>
    Struts2 里路径根据action路径,而不是jsp路径,所以我们不要使用相对路径.<a href="index.jsp">index</a> <br>
  </body>
</html>

在path里用的“index”是相对路径。虽然path.jsp和index.jsp在同一文件夹下但是却无法访问成功。

为了避免这种情况,我们不使用相对路径,myeclipse会帮我们生成两个有关路径的变量在jsp文件里。

String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

那么我们有两种方法,来进行路径命名。

1.把<a href="index.jsp">index</a>改为<a href="<%=basePath%>JSP/index.jsp">index</a>;

2.在<head></head>里加个<base>标签 <base href="JSP/<%=basePath%>"/>然后所有的连接都会添加这个路径。只要用<a href="index.jsp">index</a>即可。

Tips: <welcome-file-list>
    <welcome-file>path.jsp</welcome-file>
  </welcome-file-list>

表示访问http://localhost:8080/Struts2_0400_Path/打开path.jsp,当然前提是path.jsp在根目录。

抱歉!评论已关闭.