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/
恩,不错,用了这么久的ModelDriven还不知道是怎么回事,现在终于知道了,呵呵。。。