日期:2014-05-18  浏览次数:20664 次

struts2 关于Action的设计方案
本帖最后由 yupengmail2012 于 2013-03-24 23:50:25 编辑
想了解一下各位所在公司,关于Action的设计原则。据我所知,有以下二种

1、以页面为单位,进行定义,Action的属性与页面的各个控件相关联。
2、以业务处理为单位,比如关于用户的维护部分定义为一个Action,用户的增删改定义为方法,Action的属性为业务对象(用户)

不知各位还有什么其他设计方案没有。
我一直用的是第1种,但是对于有些情况时,这样的设计有问题,比如以下的情况
jsp1关联的是action1,jsp2 关联action2. action的设计采用modeldriven的方式,jsp1画面的输入内容都被定义在action1的model成员中
jsp2画面的输入内容定义在action2的model成员中。

现在想实现的效果是,jsp1向action1进行提交,action1将提交数据进行处理后,跳转到jsp2。为了能在jsp2上得到aciton1传过来的值,并且还要保证
jsp2提交时,提交数据对正常设定到action2的model中。这时jsp2页面上的各个控件的标签就不好定义了。
因为是采用modeldriven的方式,基本上无法实现这样的要求

jsp1                        
textbox:username   
textbox:age  
|          
|提交 
|   
|
|
action1-
|
|进行数据处理,取得department后跳转
|
|
|
jsp2
textbox:department
textbox:age


|提交

|  
action2


但是第2种方案,当业务处理比较复杂时,涉及多个页面时,action的属性会比较混乱,方法也多,感觉不易管理。

想问一下大家,设计ACTION时都是以什么为单位进行定义的。
关于我以上碰到的问题,大家一般是如何解决的。

------解决方案--------------------
按功能点吧
比如登入模块就是loginaction   用户管理模块就是useraction
------解决方案--------------------
按各个模块分类来设置的。
------解决方案--------------------
多人开发的话,还是按模块好。
------解决方案--------------------
还是按模块好,就是业务吧!方便管理
------解决方案--------------------
个人建议:
1、如果很多人写一个业务模块:建议还是多个action比较好。
2、如果一个人写一个业务模块:建议还是一个action比较好。
------解决方案--------------------
我们公司用的是按模块来定义,也就是了楼主的第二点,以业务处理为单位。