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

来源:互联网 发布:订单系统数据库设计 编辑:程序博客网 时间:2024/06/07 01:14

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
原创粉丝点击