如何重构struts的action

struts的一个action可以集中实现某一个功能单元
但如果这个功能单元的功能很多,那么就会有出现很多的if-else if
这个时候是把action拆成几个小的action,但这样子会出现很多的复制粘贴。
对于这种情况可以更好的解决方法吗?

>>>struts的一个action可以集中实现某一个功能单元

首先要注意action的角色定位,它并不是一个功能单元,不实现业务功能,只是作一个请求传递,是一个控制器。

你的问题其实是一个如何把握action的粒度的问题,尽量坚持一个action只做一件事情或者只做一类事情的原则。在实际情况中具体把握。

命令形式的就是类多。除了非业务导航参数我用一个action并判断,其它的都一个是一个。

写一个抽象的action,然后用具体的子类action去替代if-else,不知道这样对不?我在项目中一般就这样做。

>>尽量坚持一个action只做一件事情或者只做一类事情的原则。在实际情况中具体把握。

--同意这种说法,发现好多项目都把action用得太广了, 我觉得还是对于所谓的业务逻辑的理解不一样导致的吧!

对于一般的业务,我只用两个Action,一个Action用于处理修改新增操作,一个DispatchAction用于作请求传递,一及一些单参数的操作,感觉这样开发效率比较快,代码也比较容易维护

对于一般的业务,我只用两个Action,一个Action用于处理修改新增操作,一个DispatchAction用于作请求传递,一及一些单参数的操作,感觉这样开发效率比较快,代码也比较容易维护