Struts2几种参数接收的区别

1. 字符串接收

  这种字符串接收方式最简单,属性写好GET和SET方法即可,表单中使用testAction?username=dorole提交。

private String username;

public String getUsername()
{
	return username;
}

public void setUsername(String username)
{
	this.username = username;
}

2. DomainModel

  DomainModel即域模型,对应项目中的实体类。如果表单中的字段与实体类一一对应,则可以使用。

  例如Employee类中有name属性,表单中可以这样提交testAction?employee.name=dorole

private Employee employee;

public Employee getEmployee()
{
	return employee;
}

public void setEmployee(Employee employee)
{
	this.employee = employee;
}

3. ModelDriven

ModelDriven模型驱动,由struts2根据传过来的参数组装成一个model。

要使用模型驱动,Action需要实现ModelDriven接口,实现抽象方法getModel()。

记得使用泛型。表单提交方法和第一种是一样的,testAction?username=dorole。

public class testAction extends ActionSupport implements ModelDriven
{
	private Employee employee = new Employee();

	public Employee getModel()
	{
		return employee;
	}
}

4. 后续

  最后一种很少使用,麻烦。在很多情况下表单的字段会和实体类不一致,比如输入密码和重复密码,验证码等等可以采用第一种自己组装成对象。或者使用dto/vo类来转换。

本文链接地址:https://dorole.com/50/

来自:Dorole's Blog

发布者

Steve

编程/摄影

《Struts2几种参数接收的区别》上有1条评论

  1. 恩,不错,用了这么久的ModelDriven还不知道是怎么回事,现在终于知道了,呵呵。。。

回复 vualof 取消回复

您的电子邮箱地址不会被公开。

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: