论坛首页 Java企业应用论坛

关于Action层的疑惑!!!平地一声雷

浏览 7138 次
该帖已经被评为隐藏帖
作者 正文
   发表时间: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
}


都可以啊
0 请登录后投票
   发表时间: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其实还是一个单一的对象而,其他对象只是你驱动的对象的里面的属性 ,所以并不是驱动了多个对象,你的第二种实际上是属性驱动
0 请登录后投票
   发表时间:2011-08-06  
这不挺好么,你是愿意得到一堆属性,然后自己set,还是只要表单改成xx.xx简单解决?
0 请登录后投票
   发表时间:2011-08-06  
feiyang404 写道
这个问题,怎么每人回复,困扰了我好久,希望有经验的人指点一下啊

哈哈, 你把你问题的字号设大点试试
0 请登录后投票
   发表时间:2011-08-07  
gtssgtss 写道
这不挺好么,你是愿意得到一堆属性,然后自己set,还是只要表单改成xx.xx简单解决?


这种方式在简单的关联关系的时候是可以用 但是如果关联过于深入 这样在页面上会出现大量的xxx.xxx.xxx.xx  这个我觉得并不是很好,我觉得简单是属性注入更好,这样 我们仅仅需要在后台中关注模型的关联 而在页面上并不需要关注,所以我觉得想struts1的那种formbean还是很不错的
0 请登录后投票
   发表时间: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,差别不大
0 请登录后投票
   发表时间:2011-08-15  
model是啥?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics