新版本的Struts2.0是struts 的action架构和webwork的融合体.依照Struts2.0.1的发布公告,一些关键特性如下 :
l 设计简单: 使用抽象类而不是接口是Struts1的一个设计上的问题,这已经在Struts2中得到了解决.在Struts2中绝大多数类都是基于接口的,并且它的绝大多数核心接口都是独立于HTTP的.Struts2的Action类是独立于框架的,可视为单纯的POJO.框架的组件都设法保持松耦合
l 单纯的Action : Action都是单纯的POJO.任何含有execute()方法的java类都可以当作Action类来使用.甚至我们始终都不需要实现接口.反转控制会在开发Action类的时候得到介绍过,这能让Action中立于底层框架.
l 不再使用ActionForm : ActionForm特性不再在Structs2中出现.简单的JavaBean即可对Action直接传递参数.不再需要全部使用String类型的参数.
l 简单的测试 : Struts2的Action是独立于HTTP并且中立于框架的.这使得Struts2的程序可以很容易的在没有模拟对象的情况下测试.
l 巧妙的默认值 : 大多数配置元素都设有一个根据需要设定的默认值.甚至根据需要基于XML的默认配置文件都可以进行重写.
l 改良的结果集 : 不像Struts1中的ActionForward,Struts2的结果集灵活的提供了多种类型的输出,事实上这促进了响应的准备工作.
l 更好的标签特性 : Struts2可以添加样式表驱动标记,这使我们创建相同的页面仅用更少的代码.Struts2的标签更有效而且是面向结果的.Struts2的标签标记可以通过修改基础样式表来修改.个别的标签标记可以通过编辑FreeMarker的模板来修改.JSP和FreeMarker都完全得到了支持.
l 引入注释 : 在Struts2程序中,除了XML和Java properties 配置文件外,Java 5的注释也可以作为一种选择.注释使得XML的使用降至最低.
l 有状态的Checkbox : Struts2中的checkbox不需要对false值进行特殊处理.
l 快速开始 : 很多改变无需重启web容器即可实现.
l 自定义控制器 : Struts1可以自定义每一个模块的请求处理器,如果需要,Struts2可以自定义每一个Action的请求处理.
l 易与Spring整合 : Struts2的Action与Spring是友好的,只需添加Spring的bean
l 轻巧的插件 : Struts2可以通过添加一个Jar文件来进行扩展,不再需要手动配置!
l 支持AJAX : AJAX主题对提升程序交互有着重要的意义.Struts2框架提供了一套标签来AJAX化你的程序甚至DOJO.AJAX特性包括:
1. AJAX客户端验证.
2. 支持远程表单提交.(同样适用于submit标签)
3. 先进的div模板提供动态重载部份HTML
4. 先进的模板提供远程加载和计算Javascript的能力.
5. AJAX-only选项卡面板的实现
6. 丰富的发布/订阅事件模型
7. 自动交互完善标签