欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Struts2接收前端页面参数的三种方式

程序员文章站 2022-05-08 16:05:25
...

1、通过Action的属性接收参数

为action属性添加get、set方法,前端页面的input控件的name属性值与action的属性名相对应,action即可获取参数

(1)Action:

public class LoginAction extends ActionSupport {
	private static final long serialVersionUID = 1L;

	private String name;
	private String password;

	public String login() {
		System.out.println("name=" + name);
		System.out.println("password=" + password);
		return SUCCESS;
	}

	public String getName() {
		return name;
	}

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

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}
(2)前端form表单:
<form action="login.action" method="post">
    账号: <input type="text" name="name">
    密码: <input type="password" name="password">
    <input type="submit" value="登录">
</form>

2、通过Domain Model接收参数

建立一个对象User并添加相应的属性name、password,在Action中新建一个对象user并添加get、set方法,前端页面的input控件的name属性值与user的属性名相对应,action即可获取参数

(1)User对象:

public class User {
	private String name;
	private String password;

	public String getName() {
		return name;
	}

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

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}

(2)Action:

public class LoginAction extends ActionSupport {
	private static final long serialVersionUID = 1L;

	private User user;

	public String login() {
		System.out.println("name=" + user.getName());
		System.out.println("password=" + user.getPassword());
		return SUCCESS;
	}

	public User getUser() {
		return user;
	}

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

}

(3)前端form表单:

<form action="login.action" method="post">
    账号: <input type="text" name="user.name">
    密码: <input type="password" name="user.password">
    <input type="submit" value="登录">
</form>

3、通过ModelDriven接收参数

Action实现ModelDriven接口,重写getModel()方法,此时User对象需要通过new实例化,前端页面的input控件的name属性值只需与user的属性名相对应(不需要再添加user.*),action即可获取参数

(1)User对象:与第2种方法中的一样

(2)Action:

public class LoginAction extends ActionSupport implements ModelDriven<User> {
	private static final long serialVersionUID = 1L;

	private User user = new User();

	public String login() {
		System.out.println("name=" + user.getName());
		System.out.println("password=" + user.getPassword());
		return SUCCESS;
	}

	@Override
	public User getModel() {
		return user;
	}

}

(3)前端form表单:与第1种方法中的一样

4、当然前端form表单传递参数到后台,还可以通过servlet的request获取,这里就不做描述了。Action获取requset的方法请查看 Struts2获取Servlet API的三种方法