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
包括一个在不同程度上比较其中几个的电子表格:
Ume*_*thi 16
Struts2和Spring3在许多方面都非常相似.它们都是面向操作的框架,在流程中也是如此.由于Struts1的所有已知限制,Spring MVC问世.但是当你选择Struts2和Spring3 MVC时,你可以区分并且两者都是设计良好且框架好的.对于Struts2来说,它是基于Webwork的框架,但是对webwork有很多改进.一个主要优点是支持Struts2的UI标签关于spring3 mvc它同样优秀且强大的积极方面是它与Spring框架的良好和非常深入的集成.
我们在少数项目中使用Struts2和Spring DI以及使用Spring MVC进行交易管理.它只对你的选择和你的品牌倾向感到重要.
编辑
在我看来,比较设计框架不是一个好的做法,更好地提出你的要求究竟是什么项目的要求,而不是分析哪个框架根据你的需要提供最好和非常相似的要求,而不是做一个简单的比较
功能比较
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)