论坛首页 Java企业应用论坛

是多个Action好,还是一个Action好?

浏览 24731 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-03-28  
同意goldrain的看法,Action数量一定要适量,粒度太细维护起来很烦,如果都集中在一起,Action类又显得代码太多。可以以模块划分一下,如果某个模块对应的Action类仍很复杂,可以再分小的模块。。。
0 请登录后投票
   发表时间:2005-03-28  
larlf 写道
Action同ActionForm是一一对应的啊,不同数据类型肯定会用到多个ActionForm的,这个问题你们怎么解决的啊?

这个我也经常碰到,我比较喜欢使用DispatchAction,或者由它扩展出来的自己的子类。
我的表单里面放一个隐藏字段来表示调用哪个method,一般一个action里面有很多的method,比如SAVE,LOAD,DELETE一类的。这些method不光对应于一个ActionForm,有时候会有多个。比如SAVE方法需要EDITForm,但是LIST方法需要SEARCHForm。
这样我的做法是Action类也只写一个,但是在config文件里面写上2个配置,都是一个Action class.但是url不同,ActionForm也不同:


<action path="LISTXXX" type="myAction" name="searchForm">
</action>
<action path="EDITXXX" type="myAction" name="EDITForm">
</action>


不知道有没有办法写到一个Action配置里面。或者更好的解决办法。
0 请登录后投票
   发表时间:2005-03-29  
slaser 写道
larlf 写道
Action同ActionForm是一一对应的啊,不同数据类型肯定会用到多个ActionForm的,这个问题你们怎么解决的啊?

这个我也经常碰到,我比较喜欢使用DispatchAction,或者由它扩展出来的自己的子类。
我的表单里面放一个隐藏字段来表示调用哪个method,一般一个action里面有很多的method,比如SAVE,LOAD,DELETE一类的。这些method不光对应于一个ActionForm,有时候会有多个。比如SAVE方法需要EDITForm,但是LIST方法需要SEARCHForm。
这样我的做法是Action类也只写一个,但是在config文件里面写上2个配置,都是一个Action class.但是url不同,ActionForm也不同:


<action path="LISTXXX" type="myAction" name="searchForm">
</action>
<action path="EDITXXX" type="myAction" name="EDITForm">
</action>


不知道有没有办法写到一个Action配置里面。或者更好的解决办法。


对你这种不是很赞同,这样给写配置文件觉得麻烦,而且也会多出很多不必要的form类。
如你所说的这种情况,你完全可以作为一个form,form类中有你原来的俄ditform的字段,再加上一个list对象,就完全可以解决你的问题。建议做法:将你说的editform中的字段放到一个VO对象中,然后把vo放到form中,这样感觉比较清晰,将页面元素的值传导业务层作处理也比较方便。
0 请登录后投票
   发表时间:2005-06-29  
Johnson 写道
同意goldrain的看法,Action数量一定要适量,粒度太细维护起来很烦,如果都集中在一起,Action类又显得代码太多。可以以模块划分一下,如果某个模块对应的Action类仍很复杂,可以再分小的模块。。。


我觉得还是一个页面做一个action,

另不是可以用LookupDispatchAction吗?
0 请登录后投票
   发表时间:2005-06-29  
如果在一个action中处理多个页面的操作的话,那么你肯定不能用validate来验证了。我现在就是这种情况,甚至,我只写一个actionform来对应这么多的action,(我的数据库处理都是用Hibernate来封装处理了,根本就用不上actionform了),这样做有一个缺点就是不能进行validate了。其他的没有什么缺点。我用struts就改变了view的显示,它的其他功能没有用到。
0 请登录后投票
   发表时间:2005-07-08  
我感觉关键是看你的Action的大小,如果都是CRUP操作,并且都很简单那么完全可以继承自DispatchAction, 这样很方便啊

如果应用比较大,如果放在一起,会导致这个action代码过多,显的很混乱.....

不过validate倒是没有问题的,validate它只认的是FormBean被配置后的名字,在validate的xml配置文件中,只要和formbean的name一样,就OK啊
0 请登录后投票
   发表时间:2005-07-11  
每一个Class中的代码不宜太多,很多小组的建议都是:没一个Class中的代码不超过200 lines
0 请登录后投票
   发表时间:2005-07-25  
建议楼主还是学学这个,用起来逻辑性强一些。
0 请登录后投票
   发表时间:2005-08-02  
w_weidong 写道
slaser 写道
larlf 写道
Action同ActionForm是一一对应的啊,不同数据类型肯定会用到多个ActionForm的,这个问题你们怎么解决的啊?

这个我也经常碰到,我比较喜欢使用DispatchAction,或者由它扩展出来的自己的子类。
我的表单里面放一个隐藏字段来表示调用哪个method,一般一个action里面有很多的method,比如SAVE,LOAD,DELETE一类的。这些method不光对应于一个ActionForm,有时候会有多个。比如SAVE方法需要EDITForm,但是LIST方法需要SEARCHForm。
这样我的做法是Action类也只写一个,但是在config文件里面写上2个配置,都是一个Action class.但是url不同,ActionForm也不同:


<action path="LISTXXX" type="myAction" name="searchForm">
</action>
<action path="EDITXXX" type="myAction" name="EDITForm">
</action>


不知道有没有办法写到一个Action配置里面。或者更好的解决办法。


对你这种不是很赞同,这样给写配置文件觉得麻烦,而且也会多出很多不必要的form类。
如你所说的这种情况,你完全可以作为一个form,form类中有你原来的俄ditform的字段,再加上一个list对象,就完全可以解决你的问题。


你能详细讲解一下你的list的作用么?
引用
建议做法:将你说的editform中的字段放到一个VO对象中,然后把vo放到form中,这样感觉比较清晰,将页面元素的值传导业务层作处理也比较方便

form本身不就是一个vo么(除了使用验证方法)?我重新创建一个vo然后再放进去,有什么用处啊?

请指点一下
0 请登录后投票
   发表时间:2005-08-04  
java200408 写道
我感觉还是一个动作对应一个Action,这样权限管理就比较简单了。
比如说某用户只有添加权限没有修改权限。


我们做struts开发时,有专门的权限表和权限管理进行控制,有Action没有关系,我们开发时一般以一个模块为单位,具体视情况而定,如果动作不太多,不太复杂,而又操作一个表时,基本上是一个Action,如果涉及多个表,会视情况分成几个Action。我觉得这种东西不一定要定死,可以看具体情况调节
0 请登录后投票
论坛首页 Java企业应用版

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