技术开发 频道

后框架时代细说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
相关文章