JSF 2006年大事记上篇
http://www.csai.cn 作者: IT168 来源:麻地河 2007年6月6日  发表评论  进入社区

  1. 引子

  随着新年脚步的临近,2006终于要离我们而去了。如同所有的新旧交替一样,在2006的最后几天里,人们一如既往地忙碌着,向着自己年初设定的目标发起最后的攻击。盘点自己的收获,计算自己的得失,岁末的时光里,有人欢喜有人愁。成功者踌躇满志,急切地规划着来年的蓝图;失败者卧薪尝胆,暗暗许下东山再起的誓言。物竞天择,适者生存,伴随着孔子“逝者如斯夫,不舍昼夜”的声声叹息,生活在斗转星移中继续着沧海桑田的变化。

  对于JSF来说,2006意味着什么?是功成名就还是碌碌无为?作为JSF的始作俑者,Sun应该举杯痛饮胜利的香槟,还是低头咽下自己酿造的苦酒?没有人可以一言以蔽之,因为在JSF身上,发生了太多的事情。现在,就让我们站在公正的角度,按时间顺序,回顾一下JSF在2006走过的路程,成功也好,失败也罢,让事实去给JSF作个总结吧!

  2. JSF获得Framework of the Year荣誉称号

  2006年JSF有个好的开端。元月10日,来自Develop.com的消息让Sun十分开心,JSF赢得了Framework of the Year的荣誉称号。与JSF同台竞争的,全是大名鼎鼎的框架,包括Eclipse platform,Microsoft .NET 2.0 Framework,Spring Framework和Ruby on Rails,对手的不凡,让JSF这块金牌显得特别有份量。

  如同上一个年头,Sun在本年赢得了Developer.com的许多奖项,这主要是由于Sun发明了Java语言,Sun所制定的规范,现在成为了绝大部分Java工业的技术标准。Java及其多不胜数的规范,继续占领着企业开发领域的制高点,尤其是在Web领域。

  在过去的十年中,借助JCP(Java Community Process)的威力,Sun不遗余力地倾听开发人员的呼声,顺应软件开发市场的趋势,持续地改进和提高Web技术。最初的Web技术是Servlet,人们抱怨太多Java里有太多的HTML,然后是标准的JavaServer Pages技术,人们的抱怨变成了HTML里有太多的Java。最终Sun开发了一个新的Web框架标准JavaServer Faces。JSF的第一个规范发布于2004年3月(JSR 127),现在这项技术得到了大多数主要厂商的支持,包括IBM,Oracle,BEA,Borland,和Apache 基金等,也正因为如此,市场上大多数主要的IDE都内置了对JSF的支持,或者将要提供内置的JSF支持。

  JSF获得Framework of the Year的原因,是因为JSF是一项基于JSP技术的Java Web应用框架,其目标是简化J2EE应用中用户界面的开发。JSF有一组完整的API,用来表达用户界面组件,管理组件状态,处理事件,验证输入,定义页面导航和支持国际化和可访问性。除了Managed Beans技术和客户端状态管理,JSF还全面支持标签库和服务器端事件模式。

  JSF获奖的另一个原因,是J2EE应用开发中对于标准GUI组件的需求。在JSF规范推出之前,不同的软件开发商都用JSF和HTML开发自己的用户界面,各自为政,一盘散沙,直接导致维护的困难。JSF有点类似ASP.NET的web forms,不过,JSF是纯Java的。JSF和最流行的Struts框架有着良好的集成性,弥补了Struts在用户界面上的不足。事实上,Struts的主要贡献者Craig MacLanahan,也是JSF的首席设计师。

  总之,JSF是一项可信赖的标准技术,能极大地促进J2EE应用的GUI开发。JSF在开发人员当中的流行,使之成为Developer.com当之无愧的Framework of the Year赢家。

  3. Sun发布Java Studio Creator 2

  JSF从设计上就是面向工具的,因此,工具的支持,对JSF的推广和应用尤为重要。Sun为此作出了不懈的努力,2006年元月26日,Sun的JSF集成开发环境Java Studio Creator 2在人们的长久期待中,终于推出了。Sun对JSC2的发布非常慎重,因此,JSC2经历了一个非常长的beta测试阶段。JSC是一个快速的、可视化的开发环境,用于开发基于JSF的Web应用,同时支持portlet的开发。JSC2是建立在NetBeans平台之上的,其特征包括带Ajax功能的JSF组件,方便的数据库访问,流线型的应用模式等。

  可视化编程是RAD的核心。在JSC2中,几乎所有的编程工作,都被简化为JSF组件的拖放,从组件面板中拖放一个JSF组件到网页上,JSC2自动生成所有代码。页面导航设计也是可视化的,页面导航路径在一个导航图中直观显示,通过JSC2的页面导航器,导航路径可以在页面之间自由拖放。SQL查询设计也支持可视化,从数据库表中选择的查询字段,可以图形、表格或文本的方式呈现。JSC为CSS格式表单提供图形化接口,改变页面的外观非常容易,而页面上JSF组件的显示格式可以通过一个可视化的格式编辑器方便地调整。JSC2还有一个HTML页面导入功能,允许程序员从一个已有的HTML网页中导入外观格式。

  JSC2是一个完整的集成开发环境,包含了Web应用开发所需要的所有系统和模块,涵盖从安装、开发到部署的全过程。JSC2的下载版本中,带有全套JSF组件,Sun Application Server应用服务器,一个带范例库的Java 数据库。JSC2可以访问所有主流的数据库,并与流行的版本控制软件有着良好的集成。JSC2是免费的,而且,在Sun Developer Network(SDN)注册一个免费的会员资格后,还可以从开发社区中获得大量的技术支持。

JSC2的数据访问功能值得称道。数据访问是几乎所有Web应用的基础,在JSC2中,通过简单的拖放就可以从关系数据库中获取数据,无需编写任何代码。表的设计、查询的设计也是可视化的。组件可以绑定到很多数据源,例如,web service的method或EJB的method都可以被拖放的组件上。运行时,应用会自动建立和数据源的连接,查询、数据显示等都会按预期的方式工作。

  流线型的应用模式是JSC2的一项高级特征。JSC2的应用事件处理生命周期,只有4个生命周期方法。由于模式是事件驱动的,只需关注主要的事件,例如页面即将被显示,或者数据以从交易或操作中返回。这样做是为了简化web应用开发,程序员无需掌握复杂的JSF请求处理生命周期的全部细节,将业务逻辑代码放入合适的事件处理例程中即可。

  4. Exadel实现JSF对Ajax的支持

  Exadel是一家软件开发、服务和技术支持公司,主要业务是为企业应用提供解决方案。这家公司很幸运地抓住了JSF的时机,开发支持可视化编程的JSF工具,这两年知名度得以迅速提升。Exadel的产品线中,有一款称为Exadel Studio Pro的Web应用开发工具集,支持JSF、Struts、Hibernate和Spring等许多框架。

  2006年元月的最后一天,Exadel发布了Exdel Studio Pro的新版本,3.5版,这个版本最吸引人的特征是,它支持Ajax。Ajax(Asynchronous JavaScript And XML)是一项用于开发交互式Web应用的Web开发技术,正在受到全球开发社区的关注。Ajax应用依赖JavaScript,不可避免地要在客户端运行复杂的JavaScript代码,因此,开发人员需要一个框架,协助他们高效地编写支持Ajax的Web应用。

  Excadel认为,Ajax功能丰富,但工具一直是Ajax应用的最大障碍,一旦工具的障碍被突破,Ajax将很快得到大面积的普及,并且发挥其作为富互联网应用技术的全部潜力,所以,支持Ajax的开发工具越多,越有利于Ajax的发展。利用Exadel Studio Pro 3.5对Ajax的支持,开发团队可以在一个全集成的开发环境中编写Ajax应用,从而提高开发人员的效率,增加产品的可靠性,加快整个应用开发周期。

  Exadel是基于Eclipse的企业级Web应用开发环境,充分利用了开源、J2EE和Ajax技术带来的好处。Exadel提供可视化和面向代码的两种编程手段,支持包括JSF、Struts、Hibernate、MyFaces、Oracle ADF、Shale、Spring 等在内的多种开源技术,允许程序员在一个单独的集成开发环境中,同时与多个框架协同工作。

  Exadel Studio Pro 3.5对Ajax的支持体现在几个方面。Exadel Studio Pro 3.5有一个可视化的页面编辑器,编辑器带有一个组件面板,开发人员可以通过面板选取Ajax组件。当开发人员在组件面板上拖放一个Ajax组件到页面上时,编辑器会自动启动一个高级向导,指导开发人员设置组件在页面上的用法,而且,当直接编辑Ajax组件的源代码时,代码辅助(code assist)功能可用。

  5. Apache推出Myfaces Core 1.1.3和Tomahawk 1.1.2

  Apache基金是Java开源领域最著名的参与者,有着众多脍炙人口的力作,包括Tomcat、Struts、Tapestry、Shale以及Jakarta Commons系列等。Myfaces是Apache一个开源的JSF实现(Implementation),在JSF社区如雷贯耳,推出时间很早,几乎与JSF的规范同步发布。这是因为Apache是JSF专家委员会的成员之一,尽管最初Apache对JSF的规范请求投了反对票,但专家委员会的身份让Apache在JSF实现(Implementation)上占了先机。

  Apache的Myfaces项目是由两个子项目组成的,一个子项目称为Myfaces Core,是JSF规范的一个具体实现(Implementation),符合JSR-127的要求,并且通过了Sun的TCK,因此与规范100%兼容。另一个子项目称为Myfaces Tomahawk,是一组用户自定义的和扩展的标准组件。2006年5月9日,Apache同时发布了Myfaces两个子项目的新版本,分别是Myfaces Core 1.1.3和Myfaces Tomahawk 1.1.2。

  Myfaces Core是JSF的标准实现,与Sun的参考实现RI大同小异,事实上,JSF的所有标准实现都是类似的。Myfaces对JSF的贡献表现在Tomahawk。在Myfaces Tomahawk中,Apache对所有的JSF标准组件进行了扩展,并且提供了一组附加的高级组件。

  对JSF标准组件的扩展包括几个方面,例如,Web应用中常常需要对不同的角色显示不同的页面内容,Tomahawk通过增加enabledOnUserRole和visibleOnUserRole两个属性来达到这一目的;又如,Tomahawk还扩展了一个称为displayValueOnly的属性,用于控制文本框的可读可写特性;Data Table是JSF最有价值的组件之一,Toamhawk的扩展Data Table比标准Data Table功能更强大,可以对Data Table按列排序,按列分组,并且允许单独为每个列设置列头和列尾。

  Tomahawk的附加高级组件非常丰富,有四、五十种之多,而且还在不断增加。值得一提的是Tomahawk的文件上传组件。文件上传是Web应用中最常见的任务之一,可是,不管是Servlet、JSP还是JSF,都不直接支持文件上传操作,因此,网络上文件上传的解决方案满天飞。将复杂的文件上传编程进行了极大的简化,只需在tag中设置几个属性,一切就都成为现实了。

  另一个独具特色的附加高级组件是Tree组件,最新版本称为Tree2组件。这个组件可以将一个后台bean的数据以树的方式展示在网页上,节点的外观可以根据其类型进行控制,包括文本、图像和checkbox等在内的几乎任何JSF组件都可以被包含在节点之内,而且节点的展开状态既可以在客户端控制,也可以在服务器端控制。

  Apache是JSF曾经的反对者,现在成了JSF最积极的推动力量。JSF的魅力由此可见一斑。

  6. Sun推出JavaServer Faces 1.2

  2006年年终,当日历快要翻过一半时,JSF社区期待已久的JavaServer Faces新版本,终于闪亮登场。5月11日,Sun的JSF专家组完成了最后的文档修订,JavaServer Faces 1.2规范的最终版本,出现在Sun公司网站的下载页面上。10天后的5月20日,java.net宣布,作为GlassFish开源项目一部分的JSF参考实现RI 1.2正式发布。大批JSF爱好者纷纷下载最新的JSF规范和参考实现,期待着旧版本中困扰他们的问题,在新版本中得到解决。

  与JSP的混合,一直是JSF中存在的最大问题。在JSF1.2之前,当在一个页面上混合JSF和JSP标签时,会出现一些非预期的页面行为。例如,在某些情形下,页面上的信息会以不正确的顺序显示出来,而在另一些情形下,有些组件在首次访问页面时不可见,只有当再次访问时才出现。导致这些异常结果的原因,是JSF和JSP大相径庭的请求处理生命周期。

  JSF1.2的专家组,将解决上述问题列为新版本的首要目标。为此,他们作出了将EL独立出来的重大决定。EL是表达式语言,在JSF和JSP页面上均有采用,是联系页面上动态信息和后台JavaBeans属性的纽带。由于JSF和JSP请求处理生命周期的差异,JSF上的EL和JSP上的EL虽然有着相同的概念,但格式和处理逻辑不尽相同。

  从JSF1.2开始,EL已经独立出来,不再是JSF的一部分,也不再是JSP的一部分,EL有了自己的规范,成为一个统一的EL。事实上,EL的应用领域并不局限于JSF和JSP,也许我们将来会在其他领域看到EL的应用。

  对于开发人员来说,JSF1.2所带来的最大好处是,他们可以在一定的规则之下,随心所欲地混合JSF和JSP的标签了。这对于JSF的发展至关重要,因为JSP的用户基础非常庞大,虽然“纯”的JSF页面完全可以适用于绝大部分的web应用,但开发人员与JSP藕断丝连的关系,使得他们无法立即割舍JSP,所以,很多web应用将会是JSF和JSP的混合体。

JSF 2006年大事记上篇相关推荐

  1. 1. JSF 2006年大事记:ICEsoft发布ICEfaces企业版

    导读: ICEsoft是一家动态Web应用开发商,Ajax和Web 2.0的概念出现之前,ICEsoft已经在动态Web领域积累了丰富的经验.ICEsoft的著名产品是ICEfaces,这是集ICEs ...

  2. 2.JSF 2006年大事纪:Exadel携RichFaces加入JSF组件库竞赛

    导读: Exadel无疑是2006年度JSF天空上最耀眼的明星之一.继年初以一款支持JSF的开发工具Exadel Studio一举攻下JSF可视化页面编辑器的城池之后,年中凭借Ajax4jsf又占领了 ...

  3. 【业界】年终特稿:2006中国互联网搜索大事记

    "网络中混,哪能不碰搜索",这是笔者开始提笔撰写此文时一个好友的感慨.是啊!资料收集.最新最全的新闻播报-..大到国家大事,小到油盐酱醋,只要你需要,都可通过网络搜索得到.回望20 ...

  4. JSF优点(转载自中国IT实验室)

                                                  一篇关于JSF的入门文章                                           ...

  5. Seam - 无缝集成 JSF,第 3 部分: 用于 JSF 的 Ajax

    Seam - 无缝集成 JSF,第 3 部分: 用于 JSF 的 Ajax 用 Seam Remoting 和 Ajax4jsf 无缝熔接客户机和服务器 文档选项 未显示需要 JavaScript 的 ...

  6. jsf组件不显示_JSF组件库–质量不只是零缺陷

    jsf组件不显示 自从我上次查看三个主要JSF组件库的质量以来已经有一段时间了. 在2009年12月,我开始比较RichFaces,Primefaces和ICEfaces的整体软件质量 . 从那时起, ...

  7. JSF组件库–质量不只是零缺陷

    自从我上次研究三个主要JSF组件库的质量以来,已经有一段时间了. 2009年12月,我开始比较RichFaces,Primefaces和ICEfaces的整体软件质量 . 从那时起,事情发生了变化,从 ...

  8. Seam - 无缝集成 JSF,第 1 部分: 为 JSF 量身定做的应用程序框架

    Seam - 无缝集成 JSF,第 1 部分: 为 JSF 量身定做的应用程序框架 发现 Seam 对 JSF 生命周期特有的增强 文档选项 未显示需要 JavaScript 的文档选项 打印本页 将 ...

  9. JSF 2 简介,第 2 部分: 模板及复合组件

    转自:http://www.ibm.com/developerworks/cn/java/j-jsf2fu2/ 用 JavaServer Faces 2 实现可扩展 UI 级别: 中级 David G ...

最新文章

  1. SpringMVC+Apache Shiro+JPA(hibernate)案例教学(二)
  2. centos 6.5安装VMware tools
  3. php中border属性,css中display属性和border属性常遇问题讲解
  4. [SCOI2008] 奖励关
  5. python程序设计方法_Python程序设计现代方法
  6. mysql连接规定时区以及编码_springboot项目中使用mysql连接遇到时区timezone问题,和编码encoding问题解决...
  7. appium在android7.0上无法启动问题
  8. 流量少怎么办?先考虑下面四项
  9. 【NOIP2015】【Luogu2669】金币(模拟)
  10. 《智能优化算法及其MATLAB实现》书籍出版啦
  11. 国内外顶尖人工智能实验室/AI实验室推荐!
  12. PDMS.NET开发
  13. Kubernetes 学习总结(27)—— Kubernetes 安装 Redis 集群的两个方案
  14. [ROS] KDL + DH 参数 + 正解
  15. 品牌制造商做电子商务的成本结构分析
  16. 诺基亚java闪退_手机程序闪退怎么办?使用这三种办法,即可轻松搞定
  17. catflag Crypto KeyBoard
  18. [非技术]-电话面试感想
  19. Linux创建文件的几种方式
  20. 程序员做外包能转正吗?外包员工能变正式员工吗?

热门文章

  1. php对二维数组进行排序 php数据排序 php排序
  2. 治心,清静无欲;治身,皈原真柔;治世,自然无为;治家,合和恒一;治神,抱一还元;治万物,得一而生。...
  3. 装饰者设计模式(Decorator)
  4. 【蓝桥杯】16转换8进制
  5. 正在被世界淘汰的九种人!!!
  6. eclipse building workspace太慢或者 js出错问题解决
  7. StrictMode使用
  8. Golang GC算法
  9. 正在蔓延的人工智能民族主义与国家化趋势
  10. 科蓝软件收购韩国分布式内存数据库之大揭秘