【Struts2学习】 (3) Struts2 Action搜索顺序

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

如果存在就查询,如果不存在就报错.


如有错误,请指正.共同进步^-^

猜你喜欢

转载自blog.csdn.net/qq_33369215/article/details/53886080