4.为什么使用struts2

来源:互联网 发布:iphone6网络信号差 编辑:程序博客网 时间:2024/05/16 01:35

新版本的struts2.0struts action架构和webwork的融合体.依照struts2.0.1的发布公告,一些关键特性如下 :

 

l    设计简单: 使用抽象类而不是接口是struts1的一个设计上的问题,这已经在struts2中得到了解决。在struts2中绝大多数类都是基于接口的,并且它的绝大多数核心接口都是独立于HTTP.Struts2Action类是独立于框架的,可视为单纯的POJO.框架的组件都设法保持松耦合

 

l    单纯的Action : Action都是单纯的POJO.任何含有execute()方法的java类都可以当作Action类来使用.甚至我们始终都不需要实现接口.反转控制会在开发Action类的时候得到介绍过,这能让Action中立于底层框架.

 

l    不再使用ActionForm : ActionForm特性不再在Structs2中出现.简单的JavaBean即可对Action直接传递参数.不再需要全部使用String类型的参数.

 

l    简单的测试 : Struts2Action是独立于HTTP并且中立于框架的.这使得struts2的程序可以很容易的在没有模拟对象的情况下测试.

 

l    巧妙的默认值 : 大多数配置元素都设有一个根据需要设定的默认值.甚至根据需要基于XML的默认配置文件都可以进行重写.

 

l    改良的结果集 : 不像Struts1中的ActionForward,struts2的结果集灵活的提供了多种类型的输出,事实上这促进了响应的准备工作.

 

l    更好的标签特性 : Struts2可以添加样式表驱动标记,这使我们创建相同的页面仅用更少的代码.struts2的标签更有效而且是面向结果的.Struts2的标签标记可以通过修改基础样式表来修改.个别的标签标记可以通过编辑FreeMarker的模板来修改.JSPFreeMarker都完全得到了支持.

 

l    引入注释 : struts2程序中,除了XMLJava properties 配置文件外,Java 5的注释也可以作为一种选择.注释使得XML的使用降至最低.

 

l    有状态的Checkbox : Struts2中的checkbox不需要对false值进行特殊处理.

 

l    快速开始 : 很多改变无需重启web容器即可实现.

 

l    自定义控制器 : struts1可以自定义每一个模块的请求处理器,如果需要,struts2可以自定义每一个Action的请求处理.

 

l    易与Spring整合 : struts2ActionSpring是友好的,只需添加Springbean

 

l    轻巧的插件 : Struts2可以通过添加一个Jar文件来进行扩展,不再需要手动配置!

 

l    支持AJAX : AJAX主题对提升程序交互有着重要的意义.Struts2框架提供了一套标签来AJAX化你的程序甚至DOJO.AJAX特性包括:

1.      AJAX客户端验证.

2.      支持远程表单提交.(同样适用于submit标签)

3.      先进的div模板提供动态重载部份HTML

4.      先进的模板提供远程加载和计算Javascript的能力.

5.      AJAX-only选项卡面板的实现

6.      丰富的发布/订阅事件模型

7.      自动交互完善标签