Struts2的Action接受参数的方法介绍

来源:互联网 发布:淘宝教程我要自学网 编辑:程序博客网 时间:2024/05/13 02:52

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=18import 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;}@Overridepublic User getModel() {return user;}}

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

1 0
原创粉丝点击