后框架时代细说Struts的前世今生
Struts2.0 期待再次飞跃
Struts2.0与以前的Struts1相比,有质的飞跃。我们从Struts2.0开发组的文档里可以发现:
1:Action 类:
• Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。
• Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个 ActionSupport基类去实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。可定置化处理,改变了Struts1不是使用接口编程的模式,全面面向灵活的接口编程
2:绑定值到页面(view):
• Struts 1使用标准JSP机制把对象绑定到页面中来访问。
• Struts 2 使用 "ValueStack"技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。
3:Action执行的控制:
• Struts1支持每一个模块有单独的Request Processors(生命周期),但是模块中的所有Action必须共享相同的生命周期。
• Struts2支持通过拦截器堆栈(Interceptor Stacks)为每一个Action创建不同的生命周期。堆栈能够根据需要和不同的Action一起使用。
4:类型转换:
• Struts 1 ActionForm 属性通常都是String类型。Struts1使用Commons-Beanutils进行类型转换。每个类一个转换器,对每一个实例来说是不可配置的。
• Struts2 使用OGNL进行类型转换。提供基本和常用对象的转换器。
由于篇幅关系,并没有罗列出所有的特性。列出的这几点我认为与开发密切相关,可以解决开发过程中通常遇见的问题。这些无疑是对Struts1版本设计上的完善,同时也加入了webWork基础特性。甩掉了了原来落后设计的同时,也与时俱进吸收了新兴MVC框架的精华。
笔者认为Struts2.0前景巨大, 还会与众多开源框架整合在一起,大放异彩,继续稳固自己的市场。Jruby虽然整合了Ruby,从市场的角度上讲,它还是刚起步的孩子。IT行业风云变幻,技术在关键是开发人员需求。时代是进步的,也许未来很多程序会转向Jruby,但在应用面上,Jruby也可能与Struts齐头并进。
编者语:
无论这些开源框架火拼成什么样子,最终的受益人还是用户,这是大家最乐意看到的。这个市场需要活跃元素,需要新鲜血液,共同繁荣IT行业。
参与者的加入能继续引发更多的探讨,不再拘束于一家之言。只有百花齐放、百家争鸣的环境,用户有了多种选择方案,才能对企业应用的构建认识得更加完善,促进和谐发展。
Jruby真的会把Struts挤出历史舞台?此时定论尚早。
0
相关文章