struts带来的巨大烦恼…是不是系统做大了都不能使用struts?

daveeyang 2006-05-19 02:20:03

经过一段时间使用struts,随着系统越做越大,现在,我终于要抛弃struts了,因为

到现在,struts的巨大不足和缺陷越来越影响到我的项目的进度和开发效率了,欢迎

各位一起来探讨一下我的看法;

背景:现在,我负责着一个大型企业的人力资源管理系统,整个系统管理的人员大约

有1.6万人左右,系统基于jboss+oracle,java技术框架为struts,少许的报表用到

了 servlet,项目开发的时间差不多一年,好,转入正题:

到现在为止,我认为formbean 的好处就是和页面表单对应起来,在系统业务处理中,

可以实例化formbean之就可以取出页面表单的值来,方便于在业务逻辑中引用。使得

业务处理层和展示层可以分离开来,到现在为止,这也是我发现struts的唯一好处。

但struts带给我的烦恼,各位,实在太多太多了,主要的几点我罗列如下:

一、转到展示层时,需要配置forward

每一次转到展示层,相信大多数都是直接转到jsp,而涉及到转向,需要配置

forward,如果有十个展示层的jsp,需要配置十次struts,而且还不包括有时候目录

、文件变更,需要重新修改forward,注意,每次修改配置之后,要求重新部署整个

项目,而tomcate这样的服务器,还必须重新启动服务器,如果业务变更复杂频繁的

系统,这样的操作简单不可想象。现在就是这样,几十上百个人同时在线使用我们的

系统,大家可以想象一下,我的烦恼有多大。

二、当页面表单需要自动变化或者频繁变化时。

对于一个成熟的MIS系统来说,页面表单肯定是不固定的,甚至象有些系统,页面表

单是存在数据库中,需要填写的表单在页面自动生成,比如填写一个人员基本信息,

本来只需要填写 姓名、性别、出生年月 三个指标,而我后来需要增加籍贯这样的指

标,我只需要在数据库中添加籍贯这个记录,并在页面就能自动增加籍贯这样的表单

。而 struts在这方面,其优势反而变成了不足,我参考了非常多的人力资源管理系

统,这些系统几乎都能够做系统里面就可以控制人员信息的指示,进行使展示层能随

之灵活变化,如果使用了struts,这些灵活性就根本用不上。

同时,如果页面表单频繁变化时,就需要频繁修改formbean对应的方法和属性,

而每次修改之后,就要求重新部署,或者重新启动服务器……。

三、要引入struts包,引入strtus标签库,现到现为止,我们有所见即所得的

dreamwaver、frontpage、webeditor,对于繁杂页面的设计,是非常方便的,而对于

struts标签库,没有哪一种软件能够支持。jbuilder我没用过,不知道支持不支持,

而为了维护这些标签库,增加工作量支持,也非常容易出错,稍微不小心,就一堆异

常抛出来,系统他死给你看。


总结:

现在为什么asp.net越来越流行,非常重要的一点,就是asp.net这样的模式,简单

,易于控制。而且我现在仍然觉得,利用jsp的文件名作为路径的映射非常方便,而

struts还非常去配置action,使之有带有象.do、.main这样后缀的路径访问方式,不

但增加了系统功能的复杂性,影响了系统的性能不说,还增加了非常多的系统不可掌

握因素。其实 javabean+jsp,利用javabean处理业务逻辑,只利用jsp来展示数据,

这正是.net的原型,同样,即可以不用去配置struts、也不需要象serlet一样去配置

web.xml带来的麻烦。 所以,并不是所有的框架都是好的,越简单越易于控制。
所以,现在,我决定放弃struts,转而采用javabean+jsp的技术结构。
不知道各位有什么看法,欢迎大家一起来探讨我的看法,也欢迎各位批评指正。

...全文
2110 56 打赏 收藏 转发到动态 举报
写回复
用AI写文章
56 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuxiangyu 2007-01-29
  • 打赏
  • 举报
回复
楼主说的很对,框架限制了程序员的自由性。
jackiewu714 2007-01-29
  • 打赏
  • 举报
回复
路过,正在学习中...
xuhs8832 2007-01-28
  • 打赏
  • 举报
回复
其实一般写网页的高手都不会直接用Struts来写页面而是用dreamwaver等专业的软件来写,而Struts也为这些软件提供了插件,daveeyang可以试一下
markwang139 2007-01-28
  • 打赏
  • 举报
回复
我是一个新手不知道说的对不对
struts也是基于servlet之上的
我认为配制xml要比servlet要清晰的多
我也没做过大的项目
但还是觉的struts是很好用的
yuzh08 2007-01-28
  • 打赏
  • 举报
回复
楼主的这个人事管理系统项目要做一年还直说是大项目真的是很令我吃惊,说明一下我没有鄙视楼主的意思,只是觉得一听是个人事管理系统就不会很大,你们确能分析成那么大而吃惊,楼主要是说Struts不好,我一句话也说不出来,因为他真的不好,呵呵,不过楼主说Struts用不了大项目里我就不服了,因为Struts是很灵活的,你要是说慢,我觉得他怎么也比JSP+javabean+servlet快,要说灵活那什么框架也比上它,我看过网通和电信的项目,他们都是用Struts做的,可能因为当时也没那么多框架而且Struts也是正火的时候,不过这个可以说明大项目里用Struts做是没问题的,要说后期维护我想你们公司里的程序员不可能都是高手吧,用jsp+servlet+javabean能做的非常好,要不然后期的维护或更改有时你都会哭的,呵呵
好的东西配置复杂还拿.net思想来比我觉得你好象有点过份了,最起码.net的模式就是按java的思想做的,他的思想我不认为比java好,不过他的类库很多,做东西很快,这个是微软一项的做风,这才是.net流行的主要原因,而不是你所说的思想
killjim 2007-01-27
  • 打赏
  • 举报
回复
struts的标签jsp的页面不一定非用<html:xx/>什么地吧
开发东西还是靠思想的做东西是要灵活掌握
<html:img.....link> <a src="xxx">这些只要用的习惯
做出来东西符合标准用啥不一样

可能用struts比javabean多吧 感觉path forward还是蛮好用地
sakulomatata 2006-08-31
  • 打赏
  • 举报
回复
我认为struts的出现,最突出的优点是利用他的这种标准保证了项目至少在代码开发的阶段的质量及效率,这一点在几十人,上百人参与的项目中显得更为突出。至于LZ提到的问题有的是客观存在的,但是完全是可以控制甚至避免的,而且那并不是struts的问题。
jacklondon 2006-08-30
  • 打赏
  • 举报
回复
struts 只是垃圾
dhm2000 2006-08-28
  • 打赏
  • 举报
回复
赞成evo_vii和rickhunterchen的说法。
xxlcg 2006-08-27
  • 打赏
  • 举报
回复
我的经验是struts要优于javabean+jsp,但我更喜欢使用基于ajax的新框架一点,我喜欢没有经过封装的html,让html是html,js代码是js代码,java是java,不喜欢搞那些看上去像html但又不是html的标签,简单就是美
  • 打赏
  • 举报
回复
用newxy解决struts的不足
slaser 2006-08-24
  • 打赏
  • 举报
回复
现在我的头脑已经struts化了,不会用jsp+javabean了,娃哈哈。
最多用用webwork,结果还是给我搞出个formbean来。
Hodex 2006-08-21
  • 打赏
  • 举报
回复
formbean 同样是rubbish
Ryo_Hazuki 2006-08-16
  • 打赏
  • 举报
回复
spring
javaGirlOrBoy 2006-08-16
  • 打赏
  • 举报
回复
我只用structs的控制转发 其他的特性都不用,
用了就是给自己找麻烦!


非常支持!
xcnever 2006-08-16
  • 打赏
  • 举报
回复
"每次修改配置之后,要求重新部署整个项目,而tomcate这样的服务器,还必须重新启动服务器" 个人觉得除了修改服务器的配置 如果只是修改了项目的配置的话不一定需要重启服务器的 可以在载入配置的类中加入重新载入的方法 以后修改了配置的话触发这个方法不就可以了吗?
chq32 2006-08-14
  • 打赏
  • 举报
回复
用webwork吧
1735 2006-08-12
  • 打赏
  • 举报
回复
structs不是不好用,就是用起来太费时间了。手上有一个项目用structs做了一大半后,改用jsp做了,jsp方便。
zhmt 2006-08-11
  • 打赏
  • 举报
回复
up!

mark!


jacklondon 2006-08-09
  • 打赏
  • 举报
回复
formbean 可以配置成动态 form bean,我觉得 formbean 的作用不是用来做 mapping,而是能够记住 form 中内容,输入出错检查的时候能够告诉用那个错了,其余的都能记住不用重新输入。
加载更多回复(35)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧