锁定老帖子 主题:讨论:框架这样用?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-07-26
现在接手的项目是个别人已经搭好了架子的东东,在后来一段时间的开发过程中,我发现这个系统有一些缺点,总结了一下: 一、表示层 1、第一次看到,把同名的jsp放在不同的目录下,用目录名来区分。 2、同名的jsp往往主要内容相同,只是form要提交到的action不同。 二、控制层(逻辑处理层) 1、本项目大约有20个jsp页面,只用了5个ACTION,每个页面指向某个ACTION的某个处理方法: 比方说:jsp1的form这样写:
有一个隐藏变量method来标示要由netinfo的save方法来处理,那看一下struts-config.xml里是怎么写的: struts-config.xml 代码
这就会出现一个潜在的问题:netinfoAction类中不同的处理函数会随着业务的不断细化而迅速增加,不说代码量大,无法迅速定位到要修改的函数处(那时用搜索都慢),单说各个函数之间相互跳转并最终返回到指定页面:函数之间怎么能跳转?看上面的代码:Action返回success时,就会定位到manager方法继续执行,manager 方法还有可能再定位到这个类的其他方法继续执行,最后,很难控制我最初的方法返回的页面究竟是哪个,并且要考虑到另一个页面调用同类的manager方法时,是立即返回一个页面还是要推给另一个方法来定位最终页面。当业务多了,这个问题相当突出,而大量的精力将用在如何正确定位返回页面了。 2、使用了LazyValidatorForm,所有的form都使用这一个东东,直接将数据映射到hibernate持久化对象去了, 但这样的映射不能变通,只能在将要映射前把数据的格式转化一下,再做映射,无疑又增加了几百行代码。 3、由于页面中有URL或连接,每个连接要调用一个ACTION的处理函数,就得写成这样.../neitinfo.dox?method=方法名,这种连接返回的页面往往和form提交到的ACTION方法有不一样的返回页面,甚至还要返回到本页面,前面说过,本页面和另一个页面同名并且也有相同的连接,这就出现问题了,当这些页面的连接都要调用一个处理类的同一个方法时,就不得不使用flag之类的东西来标示是哪个页面来的请求,要回到哪个页面去。。地狱。。 虽然可以在函数中写上下面的文字来解决返回的问题,但还是感觉乱乱的,不舒服: jsp代码
对于这些问题,不知道应不应该换一种组织形式,重新架构。 仔细考虑了一下,结合朋友们的意见,我最终决定把ACTION的数目加上来,这样每个ACTION的函数就可以少一点,不至于那么乱,还有,关于JSP的名称,我决定要改,两个文件同名,在IDE中同时打开这两个文件,将不知道正在修改的页面是哪个,容易产生错误。 好像,增加ACTION的个数就可以解决以上大部分问题了。 希望大家说说自己的意见。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-07-26
下个决心,重新架构吧
|
|
返回顶楼 | |
发表时间:2007-07-26
应该是DispatchAction过度使用了吧 可能前期没有预计aciton逻辑
不用flag来标识同名页面调用的话 action还是费点事增加方法虽然还是调用原先的方法 |
|
返回顶楼 | |
发表时间:2007-07-26
个人观点,仅供参考:
配置文件过多,不是好事 如果配置文件没有好的UI工具进行管理 还不如用IDE写代码 一个大系统中,如果采用Spring-Struts-Hibernate架构 就会发现,一个功能往往涉及多个配置文件,查找起来 一个字,烦! |
|
返回顶楼 | |
发表时间:2007-07-27
web层确实应该做到 zero configuration
|
|
返回顶楼 | |
发表时间:2007-07-27
20个JSP的项目?那应该是规模很小的项目了
表示层通过目录来划分模块,同名JSP很正常的,通常都是list,edit,add等,有的人喜欢添加个后缀名(模块名),有的人就不添加,通过目录名来区分不会带来什么问题的。 5个action少了点,很容易出现magic action,action变的庞大,最好是根据功能项划分action为妙,这个要重构了。 LazyValidatorForm的使用,那就是仁者见仁,智者见智了。 |
|
返回顶楼 | |
发表时间:2007-07-27
呵呵,20个页面是个虚数,回去查了一下,60多个jsp!
如果20个,我也就将就了,60个,就很难忍受了。。。 |
|
返回顶楼 | |
发表时间:2007-07-27
一用DispathAction没有问题,目前是Action的粒度有些大,根据你的业务重新组织Action的粒度
二仿照ROR RHTML的方式把共同表示逻辑的JSP变成类似于模板的方式,至于关于JSP目录方式个人认为没有什么问题。 |
|
返回顶楼 | |
发表时间:2007-07-28
wl95421 写道 个人观点,仅供参考:
配置文件过多,不是好事 如果配置文件没有好的UI工具进行管理 还不如用IDE写代码 一个大系统中,如果采用Spring-Struts-Hibernate架构 就会发现,一个功能往往涉及多个配置文件,查找起来 一个字,烦! 很支持你啊,我还是喜欢EJB3, 用spring 配置文件真是多啊,而且一个不行,影响整个运行. PS: spring 里一个service没set好项目就起不来了,(我不想用懒加载,就想启动加载不可以吗) 找起来也麻烦,还要找响应的开发人员哦,感觉EJB3这方便好多了. 好希望EJB3流行起来啊....... |
|
返回顶楼 | |
发表时间:2007-07-30
netinfo 很熟的名字……
持续封装 持续集成 |
|
返回顶楼 | |