• 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;
        }
    }

      页面写法:

  • 相关阅读:
    mvn编译
    国庆续写商品管理系统(二)
    Flask中多APP应用以及admin后台系统
    Bzoj3289 Mato的文件管理
    洛谷P2888 [USACO07NOV]牛栏Cow Hurdles
    POJ1988 Cube Stacking
    Bzoj3060 [Poi2012]Tour de Byteotia
    Bzoj3038 上帝造题的七分钟2 线段树
    Bzoj3038 上帝造题的七分钟2 并查集
    TYVJ1716 上帝造题的七分钟
  • 原文地址:https://www.cnblogs.com/huaixiaoz/p/5902586.html
Copyright © 2020-2023  润新知