什么是strus2

虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts 1而言。Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts 1的血统,而是继承WebWork的血统。或者说,WebWork衍生出了Struts2,而不是Struts 1衍生了Struts2。因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts 1和WebWork两者的优势,因此,是一个非常值得期待的框架。

  Apache Struts2是一个优雅的,可扩展的JAVA EE web框架。框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程。

  Apache Struts 2即是之前大家所熟知的WebWork 2。在经历了几年的各自发展后,WebWork和Struts社区决定合二为一,也即是Struts 2

Struts 2 是一个雅致的,可扩展的,用来建立企业级Java Web应用程序的框架。
Struts 2 不但注重程序的开发过程,更注重部署和后期维护。
Struts 2 来源于WebWork 2。
Struts 2 融合了Struts 和 WebWork的社区力量,是这两个社区努力的结果。
Struts 2 非常容易使用。
Struts 2 最大可能的保留了和Strut 1.x的相似行。

Struts2 的特性有那些?

上面提到,Struts 2 关注开发,部署和后期维护三个方面。我们就从这三个方面说明Struts 2 的新特性。

构建
    上手非常容易,可以使用起步教程,模板工程或者Maven原型建立Struts 2工程。(起步简单)
       Struts 2 的官方站点上有很多关于Struts 2入门的资料,
       Struts 2 的下载目录中包含空白的模板工程(struts2-blank-2.x.war)和示例工程(struts2-showcase-2.x.war)可以参考。
       Maven 2 中有Struts 2 的项目模板,可以使用Maven 2 直接建立Struts 2 工程

    更好的设计,Struts 2 中不想要要在在处理和HTTP相关的操作,自需要使用框架的接口即可。
       在Strut 2 中不再会涉及到诸如 HttpServletRequest, HttpServletResponse, HttpSession等Http相关的Servlet接口类,取而代之的是Struts 2 的接口,例如RequestAware,SessionAware等。

    强大的标签库,Struts 2 的标签基于 CSS,标签可以提供自己需要的HTML支持。
        Struts 2 的标签利用了CSS和模板,使用起来会非常方便,在Struts 1.x中我们需要使用Table来组织表单,但是在Struts 2中所有的标签自带了Table内容,可以方便的处理格式。例如<s:textfield> 标签自动添加了 <tr> <td> 等标签。

    有状态的Checkbox,可以以一种统一的方式记录checkbox状态的变化。
       在Struts 2中即使没有被选中的checkbox其内容仍然存在于Struts 2 框架中,不必像在Struts 1.x中那样需要做特殊的存在性判断。

    灵活的取消按钮,在取消按钮点击的时候可以指向一个不同的action。
       @TODO
       可以在制定Form的action的同时,制定cancel按钮的action,当点击submit和cancel的时候出现完全按不同的功能。

    第一等级的AJAX的支持,在普通struts 标签的基础上,使用AJAX增加了交互性和灵活性。
       Struts 2 的标签内置了Ajax的支持。Struts 2 的标签使用了Dojotoolkit Ajax框架,不但能够使用Ajax特性,而且能够使用非常丰富和强大的浏览器小控件,例如日期选择控件

    见到那集成Spring框架,非常简单的使用Spring框架提供的依赖注入功能。
       可以方便的使用Spring管理Struts 2 的action的创建,通过使用Spring可以充分的利用Spring的依赖诸如功能,并且能够很好的集成其他的框架,例如Hibernate,iBatis等。

    更多的返回形式,除了JSP还支持,JasperReports,JFreeChart, Action链,文件下载等。
       除了支持JSP的表现形式,还支持JasperResports报表, JFreechart图标,Action链,文件下载等。

    POJO表单,不再需要ActionForms,使用Javabean获得客户的收入或者将属性表示出来,
    完全消除了ActionForm组建,可以使用任意合适的类型来接受页面传来的数据或者将数据表现出来。ActionFrom可以使用POJO的 JavaBean来替代,JavaBean中的属性可以使用String,也可以使用具体的类型,例如Date,Int等。

    POJO Action,使用任意的类作为Action类,甚至可以使用接口。
       任何类都可以作为Action类,只要接口满足一些简单的定义,不需要在使用Action类似的基类,你可以完全自由的发挥。

部署
    插件结构,使用jar文件扩展框架功能,不需要在做手动的配置,内置了JavaServer Faces, JasperResports, JFreeChart, Tiles等插件。
       扩展一个功能只需要添加一个插件,插件甚至可以热插拔,在你的应用不停止的情况下追加新的功能。

    集成了分析功能,可以方便的找到程序性能的问题点。
       可以不借助外力发现程序的热点,找到问题的所在,

    准确的报告错误,可以非常准确的指出程序的问题点。
       准确的报告运行时的错误,方便解决问题。

维护
    Action容易测试,直接测试Struts 2的Action,不需要使用Mock Http对象来测试。
       Action是普通的类,不需要特殊的环境,所以Struts 2 的Action 特别容易测试。

    聪明的默认值,不需要配置不必要的配置,大部分的框架配置元素的都有非常合适的默认值,基本上你不需要在做任何配置。
       Struts 2 有很多的配置项,但是每一个都有默认值,基本额上不需要更改默认的选项即可保证最佳

    容易定制的控制器,可以定制每一个Action的处理过程。
       可以使用Intercepter来过滤每一个Action,在Action执行前后追加自定义的操作。

    集成了Debugging,可以使用内容之的debugging工具找到问题。
      
     灵活的标签库,可以通过修改FreeMarker模板来定制标签的输出,不需要在操作像天书异样的JSP Taglib API,模板语言支持,Freemarker和Velocity   
       可以自定义模板库,或者修改已有模板的内容来定制页面的显示。

Struts 2 中使用的模式
Command
Chain of responsibility

Struts2 处理流程概要

 struts2的工作流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值