• struts2action接收参数的三种方法


    action接收参数的三种方法:

    1.使用Action的属性接收参数:
        a.定义:在Action类中定义属性,创建get和set方法;
        b.接收:通过属性接收参数,如:userName;
        c.发送:使用属性名传递参数,如:user1!add?name=Magci&age=18;

    eg:

    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 String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public int getAge() {
    return age;
    }

    public void setAge(int age) {
    this.age = age;
    }

    }


    2.使用DomainModel接收参数:
        a.定义:定义Model类,在Action中定义Model类的对象(不需要new),创建该对象的get和set方法;
        b.接收:通过对象的属性接收参数,如:user.getUserName();
        c.发送:使用对象的属性传递参数,如:user2!add?user.name=MGC&user.age=18;

    import user.model.User;
    import com.opensymphony.xwork2.ActionSupport;

    public class UserAction extends ActionSupport {

    private User user;
    //private UserDTO userDTO;
    public String add() {
    System.out.println("name=" + user.getName());
    System.out.println("age=" + user.getAge());
    return SUCCESS;
    }

    public User getUser() {
    return user;
    }

    public void setUser(User user) {
    this.user = user;
    }

    }

    如果传的参数和模型的属性个数不对应,我们一般使用DTO来作为中间层来传输数据。
    3.使用ModelDriven接收参数:
        a.定义:Action实现ModelDriven泛型接口,定义Model类的对象(必须new),通过getModel方法返回该对象;
        b.接收:通过对象的属性接收参数,如:user.getName();
        c.发送:直接使用属性名传递参数,如:user2!add?name=MGC&age=18

    eg:

    import struts2.user.model.User;
    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.ModelDriven;

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

    }

    执行过程:先NEW一个action.检查是否实现了ModelDriven接口,然后调用getModol(),从action返回一个Modol对象。然后调用该Modol对象的set属性。这样就把传过来的参数给接收啦。

  • 相关阅读:
    springboot整合mybatisplus
    在layui中使用treetable.js插件
    shiro系列9:基于前端的权限控制和基于后端的权限控制
    springboot文件上传案例
    springboot配置虚拟路径访问上传到磁盘的文件
    springboot文件下载案例
    springboot跨域的处理方式
    springboot上传文件过大的解决方案
    Django与Ajax
    Django查询数据库性能优化
  • 原文地址:https://www.cnblogs.com/yujianjingjing/p/2659782.html
Copyright © 2020-2023  润新知