struct2复习、梳理
构建
1、Maven
Web.xml
2配置文件
3类
继承
extends ActionSupport
返回字符串
**********************************************************
--其他
在struts2值栈中存储数据的三种方式
1用值栈对象中的set方法
public String execute() throws Exception {
//1 获取值栈对象
ActionContext context = ActionContext.getContext();
ValueStack stack = context.getValueStack();
//2 调用值栈对象中的set方法
stack.set("demo", "DemoData");
return "success";
}
2用值栈对象中的push方法
public
String
execute()
throws
Exception
{
//1 获取值栈对象
ActionContext
context
=ActionContext.getContext();
ValueStack
stack
=context
.getValueStack();
//2 调用值栈对象中的push方法
stack
.push("abcd");
return
"success";
}
3在action中定义变量(或对象),使用相应的get方法
//1. 声明变量
public
String
name
;
//2. 生成变量的get方法
public
String
getName(){
return
name
;
}
//3. 在执行方法中为变量赋值
public
String
execute()
throws
Exception
{
name
="DemoData";
return
"success";
}
补充:list集合的示例
// 1. 定义list变量
private
List<
User
>list
=
new
ArrayList<
User
>();
// 2. 生成get方法
public
List<
User
>getList()
{
return
list;
}
public
String
execute()throws Exception
{
//3 向list中设置值
User user1
=new
User();
user1
.setUsername("小奥");
user1
.setPassword("123");
user1
.setAddress("美国");
User user2
=new
User();
user2
.setUsername("小王");
user2
.setPassword("250");
user2
.setAddress("越南");
list.add(
user1
);
list.add(
user2
);
return
"success";
}
整体总结
一、 概述
Struts2轻量级的MVC框架,主要解决了请求分发的问题,重心在控制层和表现层。低侵入性,与业务代码的耦合度很低。Struts2实现了MVC,并提供了一系列API,采用模式化方式简化业务开发过程。
二、 Action
action属性 :
动态方法调用:
默认action配置:
默认的action是在访问一个不存在的action的时候访问的action,配置默认action,只需要在package中添加如下配置:
通配符映射:
使用通配符映射的方式可以大大减少action的数量,所谓通配符就是使用*,用于匹配0个或多个字符。在action的配置中,可以为name属性使用*来匹配任意的字符。比如下面的配置:
{1}会被name属性中的*的内容填充,比如在浏览器中访问/editUser,会映射到action.EditUserAction类,返回到User.jsp页面中。其中的{1}实际上就是作为占位符的,大括号的值可以是0-9,其中{0}代表整个请求URL。比如下面的配置:
三、 拦截器
(1)创建拦截器组件(创建一个类,实现Interceptor接口,并实现intercept方法;也可以继承MethodFilterInterceptor,这种方式可以使action中某个方法不进行拦截)
public String intercept(ActionInvocation invocation){
//拦截器--前部分处理
invocation.invoke();
//拦截器--后续处理
}
(2)注册拦截器
(3)引用拦截器(哪个Action希望被拦截器扩展,需要在此action配置下,引用拦截器)
拦截器栈
GF ? 2020/5/4