struts 1与2的区别

来源:互联网 发布:pe备份c盘数据 编辑:程序博客网 时间:2024/06/06 12:30

学过struts 2 ,但是在工作的时候一直接触struts 1 ,最近时间比较多久总结一下这两者之间的区别


1、action类

  struts1 要求继续一个抽象的Action 类,所以struts1 是使用抽象类的编程而不是接口是编程

  struts 2 提供一个ActionSuport接口,你可以实现它也可以实现


2、线程安全

struts 1使用单例模式并且线程安全的,一个实例处理所有的请求

struts 2 每个请求都会产生一个实例,所以线程不安全的


3、对servlet的依赖

struts1 严重的依赖servlet的API,Action被调用时HttpServletRequest和HttpServltResponse被传入Action方法

struts2 不依赖与容器,可以单独进行测试,如果需求使用HttpServletRequest和HttpServltResponse的时候也

可以通过ServletActionContext


4、可测试性

struts1 execute 使用了servlet的api ,虽然可以借助于TestCase来提供对象,但是也比较麻烦

struts 2 是要实现了public String execute()这个方法就可以了,这样Action可以脱离servlet进行测试


5、接受页面数据输入

struts1 是使用ActionForm来接受输入,所有的actionForm都必须继承基类,javabean不可以当做actionForm使用

struts2 直接使用action的属性来接受数据,同时也支持actioForm的模式


6、表达式语言

struts1 整合了jstl语言,它使用的是jstl语言

struts2 使用JSTL,但是框架也支持更大和更灵活的表达式,叫做“对象图形符号语言”(OGNL)

 

7、将值绑定在页面上

struts1 是标准的jsf绑定页面的属性和上下文

struts2 使用了valueStuck技术标签库可以不用链接你的视图到对象的表现类型访问值


8、类型转换

struts 1 ActionForm的属性大部分都是String ,Struts 1使用Commons-Beanutils类型转换。转换每一个类,不是每一个实例配置。

struts 2 使用ONGL转换,框架包含转换器基本的和共同的对象类型和原始类型。





 




原创粉丝点击