锁定老帖子 主题:关于Action层的疑惑!!!平地一声雷
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-05
chenchuan 写道 其实这个问题在开发中经常遇到,一个真正的业务处理 一个页面里面的数据一般不会只是一个实体里面的属性 简单说或者不是一张表里面的数据 可能是多张表 ,所以在这种情况下struts2的Modeldriven就很难展现他的用处了 ,我个人觉得Modeldriven处理单个对象的属性很厉害 ,多个对象就不好处理,所以 我们可以在去重写action里面的方法去构造对应的属性的对象来处理 或者使用拦截器来处理,将不同的属性封装到不同的entity里面去
又不是只支持jdk内置对象...可以直接放多个自己的pojo对象啊 例如 public class TracingInfoAction extends BaseAction implements ModelDriven<TracingInfoVO>{ private TracingInfoService tracingInfoService; private TracingInfoVO tracing = new TracingInfoVO(); public TracingInfoVO getModel() { return tracing; } //其他操作 } public class TracingInfoVO { private ZZXX zzxx = new ZZXX(); private CZXX czxx = new CZXX(); private JGSC jgsc = new JGSC(); private BZ bz = new BZ(); private JYXX jyxx = new JYXX(); private XS xs = new XS(); //get, set } 或者直接放在action里 public class ProductInfoAction extends BaseAction{ private ProductInfoService productInfoService; private Product_Info product = new Product_Info(); private T_Series series = new T_Series(); private T_Size size = new T_Size(); private T_Rank rank = new T_Rank(); //get, set } 都可以啊 |
|
返回顶楼 | |
发表时间:2011-08-06
gtssgtss 写道 chenchuan 写道 其实这个问题在开发中经常遇到,一个真正的业务处理 一个页面里面的数据一般不会只是一个实体里面的属性 简单说或者不是一张表里面的数据 可能是多张表 ,所以在这种情况下struts2的Modeldriven就很难展现他的用处了 ,我个人觉得Modeldriven处理单个对象的属性很厉害 ,多个对象就不好处理,所以 我们可以在去重写action里面的方法去构造对应的属性的对象来处理 或者使用拦截器来处理,将不同的属性封装到不同的entity里面去
又不是只支持jdk内置对象...可以直接放多个自己的pojo对象啊 例如 public class TracingInfoAction extends BaseAction implements ModelDriven<TracingInfoVO>{ private TracingInfoService tracingInfoService; private TracingInfoVO tracing = new TracingInfoVO(); public TracingInfoVO getModel() { return tracing; } //其他操作 } public class TracingInfoVO { private ZZXX zzxx = new ZZXX(); private CZXX czxx = new CZXX(); private JGSC jgsc = new JGSC(); private BZ bz = new BZ(); private JYXX jyxx = new JYXX(); private XS xs = new XS(); //get, set } 或者直接放在action里 public class ProductInfoAction extends BaseAction{ private ProductInfoService productInfoService; private Product_Info product = new Product_Info(); private T_Series series = new T_Series(); private T_Size size = new T_Size(); private T_Rank rank = new T_Rank(); //get, set } 都可以啊 注意 你的第一种modeldriven其实还是一个单一的对象而,其他对象只是你驱动的对象的里面的属性 ,所以并不是驱动了多个对象,你的第二种实际上是属性驱动 |
|
返回顶楼 | |
发表时间:2011-08-06
这不挺好么,你是愿意得到一堆属性,然后自己set,还是只要表单改成xx.xx简单解决?
|
|
返回顶楼 | |
发表时间:2011-08-06
feiyang404 写道 这个问题,怎么每人回复,困扰了我好久,希望有经验的人指点一下啊
哈哈, 你把你问题的字号设大点试试 |
|
返回顶楼 | |
发表时间:2011-08-07
gtssgtss 写道 这不挺好么,你是愿意得到一堆属性,然后自己set,还是只要表单改成xx.xx简单解决?
这种方式在简单的关联关系的时候是可以用 但是如果关联过于深入 这样在页面上会出现大量的xxx.xxx.xxx.xx 这个我觉得并不是很好,我觉得简单是属性注入更好,这样 我们仅仅需要在后台中关注模型的关联 而在页面上并不需要关注,所以我觉得想struts1的那种formbean还是很不错的 |
|
返回顶楼 | |
发表时间:2011-08-08
chenchuan 写道 gtssgtss 写道 这不挺好么,你是愿意得到一堆属性,然后自己set,还是只要表单改成xx.xx简单解决?
这种方式在简单的关联关系的时候是可以用 但是如果关联过于深入 这样在页面上会出现大量的xxx.xxx.xxx.xx 这个我觉得并不是很好,我觉得简单是属性注入更好,这样 我们仅仅需要在后台中关注模型的关联 而在页面上并不需要关注,所以我觉得想struts1的那种formbean还是很不错的 如果真这么深,modeldriven也只是把xxx.xxx.xxx.xx变成xxx.xxx.xx吧,至于普通的情况,页面写user_name和user.name,差别不大 |
|
返回顶楼 | |
发表时间:2011-08-15
model是啥?
|
|
返回顶楼 | |