zoukankan      html  css  js  c++  java
  • 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属性。这样就把传过来的参数给接收啦。

  • 相关阅读:
    重登陆模式 --ESFramework 4.0 快速上手(07)
    信息处理,分而治之-- ESFramework 使用技巧
    ESFramework 4.0 有哪些优点?
    铁血规则:事件预订与取消预订
    聊天系统Demo,增加文件传送功能(附源码)-- ESFramework 4.0 快速上手(14)
    判定生死的心跳机制 --ESFramework 4.0 快速上手(07)
    Spring中bean注入前后的一些操作:
    Spring中注入List,Set,Map,Properties
    Spring MVC视图解析器:配置多个视图解析器的优先级
    Spring 3 MVC And JSR303 @Valid Example
  • 原文地址:https://www.cnblogs.com/yujianjingjing/p/2659782.html
Copyright © 2011-2022 走看看