Struts 获取表单数据总结

本文介绍了Struts2中四种不同的参数获取方法:通过Setters方法、ServletActionContext、实体类Setters/Getters及ModelDriven接口。每种方法都有其特定的应用场景和实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种:定义属性值,通过Setters方法获取
  
 1 /**
 2  * 属性驱动:没有实体
 3  *     要求:成员变量必须要有set方法,set后面的名称必须和表单中参数的属性名称一致(首字母大写)
 4  *     执行过程:通过成员变量的set方法将参数进行封装
 5  *     参数的封装是通过params拦截器完成的
 6  * @author Administrator
 7  *
 8  */
 9 public class Param1Action extends ActionSupport{
10     private String username;
11     private int age;
12     
13 
14     public void setUsername(String username) {
15         this.username = username;
16     }
17 
18 
19     public void setAge(int age) {
20         this.age = age;
21     }
22 
23 
24     public String param1(){
25         System.out.println(username+"..."+age);
26         return SUCCESS;
27     }
28 }
属性驱动没有对象

 

第二种:从ServletActionContext中获取request对象,再从request对象中获取参数
 
1 public class Demo2Action extends ActionSupport {
2     public String demo2(){
3         //获取application
4         ServletContext context = ServletActionContext.getServletContext();
5         return SUCCESS;
6     }
7 }
静态调用
 
第三种:可以在action里面定义一个user对象,然后写上对应的Setters和Getters方法获取
 
 1 /**
 2  * 属性驱动:有实体类
 3  * 要求:
 4  *     1、表单需要以对象.属性的方式提交数据
 5  *     2、action中的实体类必须有get和set方法
 6  * 执行过程:
 7  *         通过实体类的get方法获取user对象,判断user是否为null
 8  *             如果为null:
 9  *                 初始化一个user对象,通过user的set方法,将user对象传递到action。
10  *                 然后通过user对象中属性的set方法将age参数传递并封装
11  *                 然后再次通过user的get方法获取封装了参数的user对象,然后再通过user中属性的set方法对username进行参数的封装。
12  *             如果不为null:
13  *                 就直接通过user对象中age的set方法将数据进行封装
14  *                 然后再次通过user的get方法获取封装了age的user对象,再通过该user对象中username的set方法将参数进行封装和传递。
15  *     注意:表单必须以对象.属性的方式提交数据。
16  * @author Administrator
17  *
18  */
19 public class Param2Action extends ActionSupport {
20     private User user = new User();
21 
22     public User getUser() {
23         return user;
24     }
25 
26     public void setUser(User user) {
27         this.user = user;
28     }
29     public String param2(){
30         System.out.println(user);
31         return SUCCESS;
32     }
33 }
属性驱动有对象
 
第四种:通过实现ModelDriven接口获取获取(推荐)
 
 1 /**
 2  * 模型驱动:
 3  *  1、选哟实现ModelDriven接口 
 4  *  2、需要初始化对象 
 5  *  3、需要复写接口方法
 6  * 
 7  * 最终还是通过params拦截器实现数据封装,不过之前还需要modelDriven拦截器的支持。
 8  * @author Administrator
 9  *
10  */
11 public class Param3Action extends ActionSupport implements ModelDriven<User> {
12 
13     private User user = new User();
14     @Override
15     public User getModel() {
16         return user;
17     }
18 
19     public String param3() {
20         System.out.println(user);
21         return SUCCESS;
22     }
23 
24 }
模型驱动获取值

 

转载于:https://www.cnblogs.com/RedHat-Linux/p/7820238.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值