新加入一个使用 struts的工程, 感觉非常混乱。 1、Action或者ActionForm没有分类,类似的Action没有统一的接口。ActionFrom成了个大杂烩,你没法知道某个具体Action的方法,需要哪些元素。2、Action或者ActionFrom修改后,相关的Action或者Jsp仍然可以编译通过,没有办法强制接口的统一。在多人开发的情况下,必须一个个通知相关开发者相关改变。3、动不动就要修改struts-config,多人开发时 耦合程度极高,往往不得不等别人用完才能继续开发。初步就这些感觉。不知熟悉java开发的高手们 怎么看待 struts?

解决方案 »

  1.   

    很混乱么??还好,如果你用jsp+javabean+servlet感觉还要混乱,框架这个东西其实我不大喜欢,有时候不够灵活
      

  2.   

    1、Action或者ActionForm没有分类,类似的Action没有统一的接口。ActionFrom成了个大杂烩,你没法知道某个具体Action的方法,需要哪些元素。不知道你这句话说什么的2、Action或者ActionFrom修改后,相关的Action或者Jsp仍然可以编译通过,没有办法强制接口的统一。在多人开发的情况下,必须一个个通知相关开发者相关改变。这个居然被你说成了缺点,你需要耦合么?3、动不动就要修改struts-config,多人开发时 耦合程度极高,往往不得不等别人用完才能继续开发。项目框架定下来后,struts-config需要经常改么?
      

  3.   

    healer_kx :  我同时是c++ 和 delphi的程序员。 我觉得Struts 使得java工程看起来更像delphi的工程了,面对过程的特性超过了 面向对象特性! 根本无法同c++相比(当然C++的面向对象特性更多要靠程序员自身的水平实现)
      

  4.   

    flyforlove :  强制统一接口 是有益的耦合, 当对某一重要方法做出做出重大改变时,所有使用者都会得到通知(因为他们编译将无法通过)。 而当我没有重大改变时,只要不动接口,自然可以避免耦合了。
      

  5.   

    antimicro(钻了牛角尖) ( ) 信誉:100    Blog  2006-8-28 15:59:40  得分: 0  
     
     
       
    flyforlove :  强制统一接口 是有益的耦合, 当对某一重要方法做出做出重大改变时,所有使用者都会得到通知(因为他们编译将无法通过)。 而当我没有重大改变时,只要不动接口,自然可以避免耦合了。
    ------------------------之所以出现这样的情况是因为用了jsp,jsp的解析编译是在程序运行的时候进行的,所以出现这种情况也不奇怪,这不是struts的错。
      

  6.   

    > Action或者ActionFrom修改后,相关的Action或者Jsp仍然可以编译通过,没有办法强制接口的统一。在多人开发的情况下,必须一个个通知相关开发者相关改变。你这里“相关的Action或者Jsp”是指什么?一个 xxxActtion.java 与其它的 yyyAction.java 和 zzz.jsp 之间是功能上的配合关系(比如操作 session 容器),并不是编译上的依赖关系,当然没有办法以“编译不通过”的方式来进行“通知”了。“重大改变”是要见诸于文档的,不能仅寄希望于“编译不通过”。
      

  7.   

    来晚了,也发表一下个人观点:
    1、Action或者ActionForm没有分类,类似的Action没有统一的接口。ActionFrom成了个大杂烩,你没法知道某个具体Action的方法,需要哪些元素。
    2、Action或者ActionFrom修改后,相关的Action或者Jsp仍然可以编译通过,没有办法强制接口的统一。在多人开发的情况下,必须一个个通知相关开发者相关改变。ActionForm是把<jsp:useBean>和javabean合二为一,并且和Action(主动,通过配置,这一定程度降低了耦合度)关联,我觉得是一种进步,虽然不是足够灵活;理想的应该是无须ActionForm和Action区分成两个类,并且一个命令不需要单独对应一个Action。前者有JSF的BackingBean来搞定,绝对的进步;后者由Struts的DispatchAction来搞定,对应的JSF也有这个功能。你说的“多人开发必须一个个通知”,这意味着你并没有用好团队合作开发的工具,首先,大家公用cvs,cvs本身在编译的时候就会意识到;同时cruitcase(忘记具体名字了)能够自动发出错误通知mail。这一点我想楼主应该多注意团队开发的环境搭建了。
    3、动不动就要修改struts-config,多人开发时 耦合程度极高,往往不得不等别人用完才能继续开发。
    这个我觉得很愤怒,而且有点质疑楼主对Struts的熟悉程度或者用心看过文档规范的态度,唯一可以说的就是struts-config文件可以多个,我常常用的就是struts-config-cy.xml 表示是cy(崔毅)在开发中使用的struts-config.xml,同样给别的参与者的也是这个格式,这就意味着我们一个工程中有多个struts-config-  文件最后严重鄙视一下楼主,以便给楼主强劲的学习及改进的动力。
      

  8.   

    http://community.csdn.net/Expert/TopicView3.asp?id=4764017