以下为个人看书时心得体会。读书随笔。有不妥之处,望不吝赐教。
struts2 数据传递分为三种:1:把所有数据放到javaBean属性上。2:把数据放到域对象上。3:ModelDriven。
第一种:可能不太常见,代码如下
- public String execute(){
- User user = new User();
- user.setUuid(getUuid());
- user.setName(getName());
- user.setAge(getAge());
- service().create(user);
- }
因为这种方式在传递数据时,是把数据分散的javaBean属性中。所以在框架中德到数据时,首先创建对象再把琐碎的数据一步一步填充到对象中。
第二种:比较常见的一种域对象模式,代码如下
- private User user ;
- public User getUser(){
- return user;
- }
- public void setuser(User user){
- this.user=user;
- }
- public String execute(){
- service.create(user);
- }
- private User user = new User()
- public Object getModel(){
- return user;
- };
- public String execute(){
- service().create(user);
- }
其实我们可以把这种形式看成是上面的特殊形式,只不过现在的javaBean中不再放琐碎的数据,
而是放一个复杂的对象,数据的填充由平台自动完成,我们只是把一个已经实例化并且数据已经传好的对象交给create(),
这样使得代码变得简单。但是在jsp上我们就要做出相应牺牲,因为现在的对象深度是User对象,
也就是在javaBean中有了一个新的层次User。代码如下
- <s:textfield name="user.name" lable="name">
第三种:它于域对象有所不同的是,他通过getModel()方法应用域对象而不是getter setter方法。这个方法由xwork2.ModelDriven接口声明,首先实现接口。第二步初始化user对象(域对象只要声明即可)。第三步实现getModel()方法.