3.struts2接收页面传参的三种方式

Struts2通过拦截器机制封装了三种接收页面参数的方式:

  1.属性驱动

  2.模型驱动(有两种)

    Domain

    ModelDriven

 

  1.属性驱动:这种方式比较简单,只要你直接在页面定义变量并且符合以下两个规则,就会自动接收值。

    规则1:你变量的名字和页面的name属性一致

    规则2:生成对应的get set方式

  Action写法:

public class ParamAction {
    private String username;
    private String password;
    public String para1(){
        System.out.println("用户名:"+username+"密码"+password);
        return "success";
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

  页面写法:

 

  2.Domain:在Action中创建实体类的对象,并且符合以下两个规则就可以

    规则1:页面的那么属性写法:对象名.属性名

    规则2:生成get set方法

  Action写法:

public class ParamAction2 extends ActionSupport {
    private User user;
    public String para2(){
        System.out.println("用户名:"+user.getUsername()+"密码"+user.getPassword());
        return "success";
    }
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
}

  实体类:get set省略了,自己生成

    private String username;
    private String password;

  页面写法:

  3.实现ModelDriven接口,这个一个泛型接口,泛型中的内容就是你要接受的实体类

    规则1:实现ModelDriven这个接口,并实现其getModel方法

    规则2:提供一个空的对象供其初始化

    规则3:页面的名字和实体类的属性名一致

  Action写法:

/**
 * 1.类要实现ModelDriven这个接口
 * @author Administrator
 *
 */
public class ParamAction3 implements ModelDriven<User> {
    //2.提供一个空的对象供其初始化,一定要new出来
    private User user =new User();
    public String para3(){
        System.out.println(user.getUsername()+user.getPassword());
        return "success";
    }
    //3.把user返回
    public User getModel() {
        return user;
    }
}

  页面写法:

转载于:https://www.cnblogs.com/huaixiaoz/p/5902586.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值