Struts2是流行的MVC框架。
Struts2与Struts1差别很大,基本不是一个玩意。
Struts2 = webwork2.3
Struts2的一些特性
Action类
Struts2的Action类可以实现一个Action接口,也可以实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现常用的接口。因此,称其为低侵入式框架。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。线程模式
Struts2的Action对象为每一个请求产生一个实例,因此没有线程安全问题。(Struts1的Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。)Servlet依赖
Struts2的Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2的Action仍然可以访问初始的request和response.可测性
Struts2中的Action可以通过初始化、设置属性、调用方法来测试,”依赖注入“支持也使测试更容易。表达式语言
Struts2可以使用JSTL,但也支持更强大OGNL。绑定值到页面(view)
Struts2使用ValueStack技术,使taglib能够访问值而不需要把页面view和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。类型转换
Struts2使用OGNL进行类型转换,提供基本和常用对象的转换器。