模型驱动和属性驱动

属性驱动:struts1中的ActionForm里面进行数据类型转换,而struts2是放到Action里了.即Action里面放属性

如:public class LoginAction extends ActionSupport{
private String username;
private String password;

模型驱动:当你的Action实现了ModelDriven才是模型驱动,泛型:<T>,你的模型是什么,它就是什么.

如下:

public class LoginAction2 extends ActionSupport implements ModelDriven<Person>, Preparable
{
private Person person = new Person();//它的属性是一个javabean

@Override
public Person getModel()
{
System.out.println("getModel invoked!");

return person;
}

@Override
public void prepare() throws Exception
{
System.out.println("prepare invoked!!");
}

@Override
public String execute() throws Exception
{
System.out.println("execute invoked!");

//System.out.println(person.getUsername());

return SUCCESS;
}
}

javabean对象Person如下:他的属性名注意要跟表单上的参数一致

public class Person
{
private String username;

private String password;

private int age;

private Date date;

}

属性驱动与模型驱动的比较
1) 属性驱动灵活,准确;模型驱动不灵活,因为很多时候,页面所提交过来的参数并不属于模型中的属性,也就是说页面所提交过来的参数与模型中的属性并不一致,这是很常见的情况。
2) 模型驱动更加符合面向对象的编程风格,使得我们获得的是对象而不是一个个离散的值。
小结:推荐使用属性驱动编写Action。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chatget

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值