版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33369215/article/details/53886080
项目结构:
搭建最基础的struts2项目,可以参考 【Struts2学习】 (2) Struts2开发HelloWorld实例
Action代码如下:
package com.ty.action;
import com.opensymphony.xwork2.ActionSupport;
/**
* @author Administrator
* Action搜索顺序的demo
*
*/
public class PathDemoAction extends ActionSupport{
@Override
public String execute() throws Exception {
System.out.println("----------Action搜索顺序的demo----------");
return SUCCESS;
}
}
jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>pathdemo</title>
</head>
<body>
<h1>Action搜索顺序的jsp</h1>
</body>
</html>
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>
<package name="default" namespace="/" extends="struts-default">
<action name="pathDemoAction" class="com.ty.action.PathDemoAction">
<result>/page/pathdemo.jsp</result>
</action>
</package>
</struts>
访问路径:http://localhost:8080/struts2demo/pathDemoAction.action
清空缓存,重启项目
访问路径:http://localhost:8080/struts2demo/aaaa/bbbb/ccc/pathDemoAction.action
为什么两个url会跳转到同一个页面呢?
Action搜索顺序:
http://localhost:8080/struts2demo/aaaa/bbbb/ccc/pathDemoAction.action
先去查询项目 aaaa/bbbb/ccc 路径下面有没有pathDemoAction.action 是否存在;如果有就查询,
如果没有就去 aaaa/bbbb 路径下面去找pathDemoAction.action是否存在;如果有就查询,
如果没有就去 aaaa 路径下找pathDemoAction.action是否存在;如果有就查询,
没有就去找,后面重复上次过程,直到找到默认的namespace配置的路径,
此处的路径是 http://localhost:8080/struts2demo/pathDemoAction.action
如果存在就查询,如果不存在就报错.
如有错误,请指正.共同进步^-^