Struts2 vs Spring 3

Viv*_*vek 46 java spring struts2 spring-mvc

有谁知道Struts2和Spring 3 MVC之间的区别.我知道Struts 1和Spring 2.5之间的区别,但Struts2在Spring 3或其他方面的优势是什么.

我试过在网上寻找,但在任何地方都没有全面的答案.

kvi*_*sta 28

Struts2实际上是WebWork 2重命名为Struts2.考虑一下Struts基本上利用自己的品牌来采用WebWork作为其新基础的事实,这应该向你建议,至少有一些人认为它非常引人注目 - 一个人并不总是抛弃他们的自己的代码库,在发行续集时重新开始.

也就是说,我不会告诉你Struts2比Spring 3 MVC更好/更差.底线是它们绝对可比.

如果您想了解他们如何比较的详细信息,我建议您查看Matt Raible过去几年关于此主题的演讲:

http://raibledesigns.com/rd/entry/my_comparing_jvm_web_frameworks

http://static.raibledesigns.com/repository/presentations/ComparingJavaWebFrameworks-ApacheConUS2007.pdf

包括一个在不同程度上比较其中几个的电子表格:

http://spreadsheets.google.com/pub?key=0AtkkDCT2WDMXdC1HOEtnUHpCejJMbUhGeGJWUmh5dVE&hl=en&output=html


Ume*_*thi 16

Struts2和Spring3在许多方面都非常相似.它们都是面向操作的框架,在流程中也是如此.由于Struts1的所有已知限制,Spring MVC问世.但是当你选择Struts2和Spring3 MVC时,你可以区分并且两者都是设计良好且框架好的.对于Struts2来说,它是基于Webwork的框架,但是对webwork有很多改进.一个主要优点是支持Struts2的UI标签关于spring3 mvc它同样优秀且强大的积极方面是它与Spring框架的良好和非常深入的集成.

我们在少数项目中使用Struts2和Spring DI以及使用Spring MVC进行交易管理.它只对你的选择和你的品牌倾向感到重要.

编辑

在我看来,比较设计框架不是一个好的做法,更好地提出你的要求究竟是什么项目的要求,而不是分析哪个框架根据你的需要提供最好和非常相似的要求,而不是做一个简单的比较


nhu*_*uvy 6

功能比较

Struts 2

  • 可配置的MVC组件,存储在struts.xml文件中.如果要更改任何内容,可以在xml文件中轻松完成.

  • 基于POJO的行动.Struts 2动作类是Plain Old Java Object,它可以防止开发人员实现任何接口或继承任何类.

  • 支持Ajax,用于发出异步请求.它只发送所需的现场数据,而不是提供不必要的信息,最终提高了性能.

  • 支持与Hibernate,Spring,Tiles等集成.

  • 无论您是想使用JSP,freemarker,velocity还是其他任何东西,都可以在Struts 2中使用不同类型的结果类型.

  • 您还可以利用各种标签,如UI标签,数据标签,控制标签等.

  • 为主题和模板提供充足的支持.Struts 2支持三种不同的主题,包括xhtml,simple和css_xhtml.

Spring MVC

  • 整洁明确的角色分离.无论是控制器,命令对象,表单对象还是其他任何东西,都可以通过专用对象轻松实现.

  • 借助控制器方法签名,充分利用适应性,非侵入性和灵活性.

  • 现在使用现有的业务对象作为命令或表单对象,而不是复制它们以扩展特定的框架基类.

  • 可自定义的绑定和验证将支持手动解析和转换为业务对象,而不是使用传统的字符串.

  • 灵活的模式传输可轻松与最新技术集成.

  • 可自定义的区域设置和主题解析,支持带有或不带有用于JSTL的Spring标记库的JSP等.

  • 从simle中获取,但功能强大的JSP标记库称为Spring标记库.它为数据绑定和主题等各种功能提供支持.


    好处比较

Struts 2

  • 简化设计

  • 易于使用插件

  • 简化的ActionForm和注释

  • 更好的标签功能

  • OGNL集成

  • AJAX支持

Spring MVC

  • 在Struts中无法实现的控制器,JavaBeans模型和视图之间的明确分离.

  • 与Struts相比,Spring MVC更灵活.

  • Spring可以与Velocity,XLST或其他各种视图技术等不同平台一起使用.

  • Spring中没有类似ActionForm,但直接绑定到域对象.

  • 与Struts相比,代码也更易于测试.

  • 它是一个完整的J2EE框架,由七个独立的层组成,简化了与其他框架的集成.

  • 它没有提供实现业务域和逻辑的框架,这有助于开发人员为应用程序创建控制器和视图.

(来源http://www.cygnet-infotech.com/blog/struts-2-vs-springmvc)