Struts和struts2的不同点:
1、Action
Struts的Action类要求继承一个基类。
Struts2的Action类是通过实现接口。
2、线程模式
Struts Action线程不安全的,单列的模式。
Struts2 Action对象为每个请求产生一个实例
3、Servlet依赖
Struts Action依赖于Servlet API
Struts2 Action不依赖于容器
4、可测性
Struts Action 测试时excute方法暴露了Servlet API(要依赖于容器)
Struts2 Action 依赖注入
5、捕获输入
Struts 通过ActionForm拿到数据
Struts2 Action 直接使用 Action 属性作为输入的属性
6、表达式语言
Struts 整合了 JSTL ,因此使用 JSTL EL .
Struts2 可以使用 JSTL OGNL
7、绑定值到页面
Struts 使用标准 JSP 机制把对象绑定到页面来访问
Struts2 使用 "ValueStack" 技术
8、类型的转换
Struts1 ActionForm 属性通常都是 String 类型的. Struts1使用 Commons-Beanutils 进行类型的转换
每个类一个转换器,对每一个实例来说是不可配置的
Struts2 使用OGNL 进行类型的转换. 提供基本的和常用的对象的转换器
9、校验
Struts1 支持在 ActioNForm 的 validate 方法中手动的校验
Struts2 支持通过 validate 方法和 XWork 校验框架来进行校验
10、Action 执行的控制
Struts1 支持每一个模块有单独的 Request Processors (生命周期);但是模块中的所有的 Action 必须功效那个相同的生命周期
Struts2 支持通过拦截器堆栈 (Interceptor Stacks) 为每一个 Action 创建不同的生命周期.
struts是servlet为核心控制器,而struts2是以一个过滤器和拦截器为核心控制器