• struts2传递参数值的3中方式


    在使用struts2的时候,当要传递的参数不多的时候,我们会选择使用属性来传参,而当要传递的参数很多的时候,或者多个action会有共用的参数时,我们会使用另外两种传参方式。

    注意:使用Model Driven传参时,我们需要自己new对象。

    1、通过属性传参数(Attr)
    UserAction.java

    public class UserAction extends ActionSupport {
        private String name;
        private int age;
    
        public String add() {
            System.out.println("name:"+name);
            System.out.println("age:"+age);
            return SUCCESS;
        }
    
        public int getAge() {
            return age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public void setName(String name) {
            this.name = name;
        }

    调用方法:

    <a href="user/userAdd.action?name=Don&age=26">添加用户</a>

    2、通过域模型传参数(Domain Model)

    DTO :Data Transfer Object 数据传输对象。主要用于远程调用等需要大量传输对象的地方。比如我们一张表有 100 个字段,那么对应的 PO 就有 100 个属性。但是我们界面上只要显示 10 个字段, 客户端用 WEB service 来获取数据,没有必要把整个 PO 对象传递到客户端,这时我们就可以用只有这 10 个属性的 DTO 来传递结果到客户端,这样也不会暴露服务端表结构。

    UserAction.java

    public class UserAction extends ActionSupport {
        // 通过域模型传参数
        private User user;
    
        // 通过数据传输对象传参数
        // private UserDTO userDTO;
    
        public User getUser() {
            return user;
        }
    
        public void setUser(User user) {
            this.user = user;
        }
    
        public String add() {
            System.out.println("name:" + user.getName());
            System.out.println("age:" + user.getAge());
            // System.out.println("name:"+userDTO.getName());
            // System.out.println("age:"+userDTO.getAge());
            return SUCCESS;
        }
    
        // public void setUserDTO(UserDTO userDTO) {
        // this.userDTO = userDTO;
        // }
        //
        // public UserDTO getUserDTO() {
        // return userDTO;
        // }
    }

    User.java

    public class User {
        private String name;
        private int age;
    
        public int getAge() {
            return age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }

    UserDTO.java

    //数据传输对象
    public class UserDTO {
        private String name;
        private String password;
        private String comfirmPassword;
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String getComfirmPassword() {
            return comfirmPassword;
        }
    
        public void setComfirmPassword(String comfirmPassword) {
            this.comfirmPassword = comfirmPassword;
        }
    
        private int age;
    
        public int getAge() {
            return age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }

    调用方法

    <a href="user/userAdd.action?user.name=Don&user.age=26">添加用户</a>

    3、通过模型驱动传参数(Model Driven)
    UserAction.java

    public class UserAction extends ActionSupport implements ModelDriven<User> {
        private User user = new User();
    
    
        public String add() {
            System.out.println("name:"+user.getName());
            System.out.println("age:"+user.getAge());
            return SUCCESS;
        }
        @Override
        public User getModel()
        {
            return user;
        }
    
    }

    User.java
    (源代码同上)
    调用方法:

    <p>使用ModelDriven传参数</p>
    <a href="user/userAdd.action?name=Don&age=26">添加用户</a>

    你要坚强,坚强的足以认识自己的弱点;你要勇敢,勇敢的足以面对自己的恐惧;你要堂堂正正。在遇到挫折时能够昂首而不背躬屈膝;你要能够面对掌声,在胜利时能够谦逊而不趾高气扬。真正的伟大直率真诚,真正的贤人虚怀若谷,真正的强者温文尔雅。——萨利·布什(林肯的继母教育林肯)
  • 相关阅读:
    dremio 学习一 简单了解
    dremio 集群简单部署
    idea 无法添加maven项目问题
    maven几个加速地址配置
    dremio mongodb objectid 转换问题
    cube.js 集成dremio
    dremio 集群部署模式
    timescaledb 2.0 ga了
    dremio 数据湖平台
    dremio 中文查询问题解决
  • 原文地址:https://www.cnblogs.com/jinhuazhe2013/p/4101175.html
Copyright © 2020-2023  润新知