struts2 中 form-action action-form 的传参方式

1.  struts2 Action获取表单提交数据

    主要有三种方式:

1.1 使用ActionContext类

struts2 中 form-action action-form 的传参方式_第1张图片

 

 

 

//获取actionContext对象
ActionContext context = ActionContext.getContext();
Map map = context.getParameters();

Set keys = map.keySet();
for (String key : keys) {
Object[] obj = (Object[]) map.get(key);
//数组形式:因为输入项里面可能有复选框的情况
System.out.println(Arrays.toString(obj));

}
View Code


1.2. 使用ServletActionContext类

struts2 中 form-action action-form 的传参方式_第2张图片

 

 

 

 

HttpServletRequest request = ServletActionContext.getRequest();
String username = request.getParameter("username");
View Code

 

1.3. 使用接口注入方式

struts2 中 form-action action-form 的传参方式_第3张图片

 

 

public class LoginAction extends ActionSupport implements ServletRequestAware{
private HttpServletRequest request;
public void setServletRequest(HttpServletRequest request) {
// TODO Auto-generated method stub
this.request = request;
}
@Override
public String execute() throws Exception {
String username = request.getParameter("username");
return super.execute();
}
View Code

2. 在action中操作域对象

struts2 中 form-action action-form 的传参方式_第4张图片

 

 

Struts2封装获取表单数据方式

1.1  原始方式获取表单封装到实体类对象

struts2 中 form-action action-form 的传参方式_第5张图片

 

1.2 属性封装(会用)

struts2 中 form-action action-form 的传参方式_第6张图片

 

 

1.3 模型驱动封装(重点)

struts2 中 form-action action-form 的传参方式_第7张图片

 

 

1.4 表达式封装(会用)

struts2 中 form-action action-form 的传参方式_第8张图片

 

 struts2 中 form-action action-form 的传参方式_第9张图片

 

 

比较表达式封装和模型驱动封装

1 使用表达式封装和模型驱动封装都可以把数据封装到实体类对象里面

 

2 不同点:

1)使用模型驱动只能把数据封装到一个实体类对象里面

- 在一个action里面不能使用模型驱动把数据封装到不同的实体类对象里面

 

2)使用表达式封装可以把数据封装到不同的实体类对象里面

 

1.5 封装到集合里面

 struts2 中 form-action action-form 的传参方式_第10张图片

 

 在表单中取出集合元素的第一种方式

struts2 中 form-action action-form 的传参方式_第11张图片

 

 

在表单中取出集合元素的第二种方式

struts2 中 form-action action-form 的传参方式_第12张图片

 

 

在表单中取出集合元素的第三种方式

 struts2 中 form-action action-form 的传参方式_第13张图片

 

 

 

1.6 封装数据到Map集合

struts2 中 form-action action-form 的传参方式_第14张图片

 

 struts2 中 form-action action-form 的传参方式_第15张图片

 

 

    获取值栈对象

1)每次访问action时候,都会创建action对象,

2)在每个action对象里面都会有一个值栈对象(只有一个)

struts2 中 form-action action-form 的传参方式_第16张图片

 

 

1 值栈分为两部分:

第一部分 root,结构是list集合

1)一般操作都是root里面数据

第二部分 context,结构map集合

struts2 中 form-action action-form 的传参方式_第17张图片

 

 

    向值栈放数据

 

第一种 获取值栈对象,调用值栈对象里面的 set 方法

 

struts2 中 form-action action-form 的传参方式_第18张图片

 

 

第二种 获取值栈对象,调用值栈对象里面的  push方法

struts2 中 form-action action-form 的传参方式_第19张图片

 

 

向值栈放对象

struts2 中 form-action action-form 的传参方式_第20张图片

 

 

向值栈放list集合

struts2 中 form-action action-form 的传参方式_第21张图片

 

 

从值栈获取数据

struts2 中 form-action action-form 的传参方式_第22张图片

 

 struts2 中 form-action action-form 的传参方式_第23张图片

 

 

获取对象

struts2 中 form-action action-form 的传参方式_第24张图片

 

 struts2 中 form-action action-form 的传参方式_第25张图片

 

其他操作

1 使用set方法向值栈放数据,获取

 struts2 中 form-action action-form 的传参方式_第26张图片

 

 

2 使用push方法向值栈放数据,获取

 

struts2 中 form-action action-form 的传参方式_第27张图片

 

 

request域放值

struts2 中 form-action action-form 的传参方式_第28张图片

 

 

1 struts2标签中表单标签

1)在struts2标签里面使用ognl表达式,如果直接在struts2表单标签里面使用ognl表达式不识别,只有%之后才会识别。

 

 

案例-列表功能改造(值栈)

struts2 中 form-action action-form 的传参方式_第29张图片

 

 

struts2 中 form-action action-form 的传参方式_第30张图片

 

 

 

 

 

 

 

 

 

 

 

 



你可能感兴趣的:(struts2 中 form-action action-form 的传参方式)