1. 创建一个简单的Action
package com.web;
public class UserAction {
private String name;
public UserAction(){
//随便加一行代码并添加断点
System.out.println("==创建UserAction对象==");
}
public String execute(){
System.out.println("执行execute方法...");
System.out.println("name========="+name);
return "success";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2. 启动Tomcat服务器调试运行
//调用Action随便传入一个参数
http://localhost:8080/struts2Demo/userAction?name=admin
进入执行调试视图,方法的调用栈如下图所示
重点阅读DefaultActionInvocation.java的初始化方法,在该方法中完成如下事件
- 创建上下文环境
- ActionInvocation对象的共享
- 创建Action对象
- 将Action对象置入ValuesStack中
- 创建ActionInvocation的上下文环境
- 将拦截器堆栈置于初始调度状态