Struts2 学习笔记(2) 接受参数问题

Struts2 接受参数的问题:

我们采取一下三种方式接收参数:
一,利用Action类的属性来封装参数

在User类中,定义属性。jsp直接请求这个Action
1.定义一个User类 。如图:

这里写图片描述
在form.jsp页面中进行简单的测试 。具体代码如下:

注意: 表单里 input 里的name属性名 一定要与User 里的属性名一致。

这里写图片描述

将Struts2 进行如下配置:

这里写图片描述

测试:

这里写图片描述

这里写图片描述

控制台接受到数据:

这里写图片描述

由于第一种方法 User类中定义的属性太多了就显得特别麻烦。于是引进第二种办法:UserAction类中 定义一个User 类 直接对User类实现get set方法。

二.利用DomainModel接受参数:

  1. 定义一个UserAction类:
public class UserAction {
    private User user;
    public User getUser() {

        System.out.println("getUSer......");
        return user;
    }

    public void setUser(User user) {
        System.out.println("setUSer......");
        this.user = user;
    }

    public void test() {
        System.out.println(this.user);
    }

}

注意:此时input标签的name 属性也有所改变:

这里写图片描述

运行结果:
这里写图片描述

根据运行结果:可以看出: 先进行getUser的方法 如果值为null再进行setUser 方法 。

由于 第二种方法 会让jsp中的表单命名显得复杂 引进第三种方法 通过实现ModelDriven接口

三,利用ModelDriven 接受参数:

将UserAction 实现ModelDriven 接口 该接口必须重写getModel()方法。通过getModel创建User对象。

public class UserAction implements ModelDriven{
    private User user;

    @Override
    public Object getModel() {
        if(this.user==null){
            System.out.println("getModel....");
            this.user=new User();
        }
        return this.user;
    }

    public void test() {
        System.out.println(this.user);
    }
}

注意form 表单 :name属性 没有改变。

这里写图片描述

运行结果:
这里写图片描述

通过getModel()来创建对象,接受数据。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值