struts2新特性预览 -乐鱼入口

27顶
4踩

struts2新特性预览

2006-08-21 18:41 by 见习记者 tianxinet 评论(8) 有20590人浏览
看到关于框架选择的帖子,贡献一点东西,如果你有选择struts的意向,还是直接等struts2好了。

struts2与struts1的对比

来源:struts2开发组  翻译:tianxinet(胖猴)


action 类:
• struts1要求action类继承一个抽象基类。struts1的一个普遍问题是使用抽象类编程而不是接口。
• struts 2 action类可以实现一个action接口,也可实现其他接口,使可选和定制的服务成为可能。struts2提供一个actionsupport基类去实现 常用的接口。action接口不是必须的,任何有execute标识的pojo对象都可以用作struts2的action对象。

线程模式:
• struts1 action是单例模式并且必须是线程安全的,因为仅有action的一个实例来处理所有的请求。单例策略限制了struts1 action能作的事,并且要在开发时特别小心。action资源必须是线程安全的或同步的。
• struts2 action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)

servlet 依赖:
• struts1 action 依赖于servlet api ,因为当一个action被调用时httpservletrequest 和 httpservletresponse 被传递给execute方法。
• struts 2 action不依赖于容器,允许action脱离容器单独被测试。如果需要,struts2 action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问httpservetrequest 和 httpservletresponse的必要性。

可测性:
• 测试struts1 action的一个主要问题是execute方法暴露了servlet api(这使得测试要依赖于容器)。一个第三方扩展--struts testcase--提供了一套struts1的模拟对象(来进行测试)。
• struts 2 action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。

捕获输入:
• struts1 使用actionform对象捕获输入。所有的actionform必须继承一个基类。因为其他javabean不能用作actionform,开发者经常创建多余的类捕获输入。动态bean(dynabeans)可以作为创建传统actionform的选择,但是,开发者可能是在重新描述(创建)已经存在的javabean(仍然会导致有冗余的javabean)。
• struts 2直接使用action属性作为输入属性,消除了对第二个输入对象的需求。输入属性可能是有自己(子)属性的rich对象类型。action属性能够通过web页面上的taglibs访问。struts2也支持actionform模式。rich对象类型,包括业务对象,能够用作输入/输出对象。这种modeldriven 特性简化了taglib对pojo输入对象的引用。

表达式语言:
• struts1 整合了jstl,因此使用jstl el。这种el有基本对象图遍历,但是对集合和索引属性的支持很弱。
• struts2可以使用jstl,但是也支持一个更强大和灵活的表达式语言--"object graph notation language" (ognl). 

绑定值到页面(view):
• struts 1使用标准jsp机制把对象绑定到页面中来访问。
• struts 2 使用 "valuestack"技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。valuestack策略允许通过一系列名称相同但类型不同的属性重用页面(view)。
 
类型转换:
• struts 1 actionform 属性通常都是string类型。struts1使用commons-beanutils进行类型转换。每个类一个转换器,对每一个实例来说是不可配置的。
• struts2 使用ognl进行类型转换。提供基本和常用对象的转换器。

校验: 
• struts 1支持在actionform的validate方法中手动校验,或者通过commons validator的扩展来校验。同一个类可以有不同的校验内容,但不能校验子对象。
• struts2支持通过validate方法和xwork校验框架来进行校验。xwork校验框架使用为属性类类型定义的校验和内容校验,来支持chain校验子属性 

action执行的控制:
• struts1支持每一个模块有单独的request processors(生命周期),但是模块中的所有action必须共享相同的生命周期。
• struts2支持通过拦截器堆栈(interceptor stacks)为每一个action创建不同的生命周期。堆栈能够根据需要和不同的action一起使用。
27
4
评论 共 8 条 请登录后发表评论
8 楼 2011-01-10 11:42
     
7 楼 2010-12-01 14:20
类型转换:这里s2好像做的也有问题 ,我一个int 的list在页面上处理就报错了,
6 楼 2010-10-30 15:10
看看吧,仔细地读一读但愿有收获,谢谢。
5 楼 2010-08-12 14:31
总结太jb泛滥了
4 楼 2010-07-31 16:46
骂人不好,善哉
3 楼 2010-03-22 10:57
细节不是很好 垃圾
2 楼 2010-02-08 17:47
对struts的介绍对比都很详细
1 楼 2009-07-10 11:20
读了这篇文章,我很有收获啊!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 18漫画

  • cimoc1.6.1版本下载,这是一款资源超级丰富的漫画软件,平台上的漫画全部支持免费观看,且更新速度极快,使用这款软件,用户永远不会出现漫荒的尴尬情况,喜欢的用户快来下载试试吧!【软件详情】cimoc怎么更新?cimoc官方最新版是一款非常不错的漫画阅读软件,cimoc官方版里具有海量的优质小说资源,用户可一键搜索查询自己喜爱的漫画阅读,同时支持离线下载阅读,线上阅读等功能,让你随时免费阅读漫画...

  • 1,解压过程中非正常退出。 在解压过程中,无任何提示进程就退出了。 分析问题,发现c 盘可用空间变小了,原来是3g多将近4g,最后只有1.32g可用空间。 查看环境变量,temp 指向 %user...%\appdata\local\temp, 经验证,解压的临时文件是存放在上述目录中的。 于是修改临时变量,指向可用空间最大的d 盘。 再运行,解压过程可到100%。 出现对话框,但是

  • 作为二次元 动漫迷们必备的在线观看漫画工具,那么“动漫之家”肯定是每个人必入坑之一,毕竟它的上线时间也是于2005年的时候。 最早一批的动漫网站,很早二次元喜欢的人,就在里面进行打卡分享番在这网站里的,也有业余大佬汉化组为网站发电提供内容! 主要吧之前市场的管理制度不算严格,所有漫画没有按照进行审核删减,都是各种类型的漫画因有尽有,然而随后人们乐鱼入口的版权意识提高,所以各种盗版以及内容是否符合核心价值观也是人们所聊到的话题! 网上能依稀看到2013年央视点名批评进击巨人,除了点名批评外,在2015年6月8日。

  • /1 前言/ 平时我们要下载图片,要要一个一个点击下载是不是觉得很麻烦?那有没有更加简便的方法呢?答案是肯定的,这里我们以天堂网为例,批量下载天堂网的图片。 /2 项目准备工作/ 首先 我们第一步我们要安装一个pycham的软件。 天堂网的网址: https://www.ivsky.com/bizhi/1920x1080/ 我们需要下载几个库,怎么下载呢?打开pycharm,依次点击file,再点开settings,如下图所示。 打开后会出现这个界面点击你的项目名字(

  • 1、木马动漫 https://omyschool.com/ 2、第6夜漫画 http://www.d6ye.com/ 3、土豪漫画 https://www.tohomh123.com/ 4、动漫屋 http://www.dm5.com/ 5、漫画柜 https://www.manhuagui.com/

  • 一年一度的七夕就要到来了,身边的人总是问我:送什么?二哥这么穷,这么不懂得浪漫的人送点什么呢!冥思苦想之后作为程序猿的我们总是要搞出来一点属于我们自己的浪漫,今天二哥就带着大家用python“码”上七夕。 ps:七夕当然是要送一个专属的礼物,本文的所有成果都可以定义,建议收藏! ❤️静态照片二维码 首先来一个简单点的静态照片二维码制作,用着她/他/它的照片,设置好你想说的话,生成照片就可以了。 这里我们可以配置多种参数来调整二维码的规格,下同。 words:二维码内容,链接或者句子(暂不支持中文) v.

  • 华泰证券手机版涨乐财富通是华泰证券为广大证券投资者量身定制的新一代移动理财服务终端,旨在为用户提供最全面最高端的理财服务,并向所有用户永久免费开放。目前涨乐财富通包括五个板块热点、行情、交易、百宝箱、掌上营业厅、每个页面都非常的纯净和专业,保持了大型券商一贯专业和严谨的作风,信息权威详实,没有任何多余的信息和广告。涨乐交易满足投资者基本的交易需求,通过优化的功能设计,让投资者的操作更加便捷、高效。...

  • http://abowman.com/google-modules/ http://www.xiao-i.com/index.aspx http://comic.qq.com/a/20120321/000020.htm#p=41

  • 一、crossdomain.xml文件的作用    跨域,顾名思义就是需要的资源不在自己的域服务器上,需要访问其他域服务器。跨域策略文件是一个xml文档文件,主要是为web客户端(如adobe flash player等)设置跨域处理数据的权限。打个比方说,公司a部门有一台公共的电脑,里面存放着一些资料文件,专门供a部门内成员自己使用,这样,a部门内的员工就可以访问该电脑,其他部门人员则不允许访问。

  • 任何人都已经能够成功地实现服务,服务需要套接字策略文件,flash播放?我正在由adobe在提供的服务的python实现http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html并使用以下策略文件:和接收从flash此消息:[securityerrorevent type="securityerror" bub...

  • parsec web客户端允许您通过chrome 69 连接到parsec主机

  • [code="xml"] [/code]

  • 乐鱼app官网的解决方案https://blog.csdn.net/ai297313/article/details/46731131

  • 下载flexpaper源码修改后做成swf阅读器,要加入待阅读的swf文件,可以在flex里调用js的方法来获取swf文件的路径的方法,在js只专注获取路径就行,等着flex来调用:但这里会遇到一个问题那就是出现安全问题,如下的提示: error #2044: 未处理的 ondocumentloadederror:。 text=error #2048: 安全沙箱冲突:http://loca...

  • os: ubuntu 14.04 lts (x86_64) ***error 1openssl 1.0.1e 与perl5.18 不兼容 pod document had syntax errors at /usr/bin/pod2man line 71. make[1]: *** [install_docs] error 255 修改 1降低perl 版本,perl-5.1...

  • cimoc隐藏入口最新版本1.6.1拥有最新的漫画资源。你能在这里看到最快更新的漫画资源,这里的漫画种类很广泛,有日漫韩漫还有国漫,不管你喜欢看什么风格这里都会有。这里的漫画资源都是最热门最新的,你可以没有障碍的阅读这些免费资源。软件介绍:1、cimoc最新版本1.6.1是给更多爱追漫的用户提供的掌上搜漫助手;2、高清的阅读界面让大家阅读的很方便,而且不断升级了大家的体验感;3、这里的很多漫画内容...

  • 点击上方“python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠python从入门到进阶共10本电子书今日鸡汤不经一番寒彻骨,怎得梅花扑鼻香。/1 前言/平时我们要下载图片,...

global site tag (gtag.js) - google analytics
网站地图