前言
作为一线的技术开发人员,在从业的十年间,我经历过从十几个人的小型项目到数百人的大型项目。闲暇时我常常细细回味这些经历,感觉技术的演化和发展真是层出不穷,表示层的技术更是日新月异,从最初的CGI、Perl、ASP、PHP到Servlet、JSP,再到丰富的表示层框架。现如今,客户端技术主要有Applet、Swing、SWT/JFace、Flex、AIR、Silverlight、JavaFX等,每个都有自己的优缺点,很难真正分出高低。在Java的企业级应用开发领域,以JSP/Servelet为基础也产生了许多流行一时的Web框架,大家耳熟能详的有Struts、WebWork(后来合并到Struts 2项目)、Spring MVC等。每个框架也都有自己的优缺点,产生了一种百家争鸣的局面,幸好Java社区有JCP的存在,虽然有点官僚,但是在瘦客户端开发规范方面推出了统一的Web Framework——JSF。随着Ajax和RIA技术的流行,许多大家以前认为不大可能成为主流的编程语言又获得了新的生命力,最出彩的是JavaScript,伴随着“旧瓶新装”Ajax的流行,涌现出了一大批的JavaScript框架,如Prototype、script.aculo.us、jQuery、YUI、ExtJS等。面对林林总总的开发框架,总是让人难以选择,例如:
■ 我的技术水平不高,面对这些框架,我应该从什么技术开始学起呢?
■ 我想用ExtJS的界面,但我不熟悉JavaScript语法,有没有办法像使用JSP的方法一样封装ExtJS?
■ JSF真是太好了,但是在上面加一个Ajax功能怎么那么困难呢?有没有一个合适的框架?
■ 有没有一个办法让Ajax请求也经过一个JSF生命周期?
■ Struts统一的异常处理机制真是太棒了,JSF应用中如何实现这样的机制呢?
■ JSF的DataTable如何实现翻页时从数据库加载数据?
■ 为什么一次翻页实现在JSF生命周期中会被调用两次?如何能避免这样导致性能下降的问题?
■ JSF组件思想是不错,但开发一个组件太难了!写一大堆无用的东西,真是麻烦,有办法快速定制开发JSF组件吗?
…………
本书针对上述问题,结合笔者在项目中的实践给出了行之有效的解决方案,能助你破除重重障碍;与此同时,也针对JavaScript相关的RIA开发做了专题描述。书中汇集了许多大型企业级Web开发的优秀实践经验,内容包含了大量详实的实例:从Web开发基础,到JSF组件(RichFaces),再到纯JavaScript框架(ExtJS),以及二者的结合ExtFaces。其中很多解决方案和样例代码稍作修改就可以直接应用于项目开发之中。结合书中的内容,读者可以根据自己项目的特点,采用一种或者多种技术灵活地制定实际项目的解决方案。
本书内容广泛,深入浅出,可以作为初学者的入门教材,适合于开发人员作为多种Web UI技术的入门指导,也适合架构师作为技术选型的参考手册。
本书结构
本书内容包含4 大部分共10 章,所涉及的内容按照学习的层次由浅到深。已经具备Web基础知识的读者可以从第Ⅱ部分开始阅读;喜爱ExtJS的读者则可以从第Ⅲ部分开始探险。本书的第Ⅳ部分主要是介绍ExtFaces,这个框架是笔者实践的总结,是在某大型企业内的成功应用,其结果远远超出了客户的预期,获得了巨大的成功。
缘起
2007年年末的时候,我们虽然有一些项目采用Struts,但是大部分项目都还是用MyFaces JSF进行开发。很明显JSF的重用组件思想迅速地征服了大部分开发者,虽然刚开始的时候他们还在抱怨那个所谓的“生命周期”只会提供各种各样的麻烦。在随后的过程中,我们将RichFaces引入了项目,获得了巨大的成功。ExtJS在此时已经逐渐流行,敏锐的雨虹迅速地捕捉到这一信息,但可惜的是没有一种成熟的方案可以将ExtJS和JSF完美地结合在一起,充分发挥两者的长处。在随后的研究过程中,我们找到了一种行之有效的解决方案,并成功地应用在随后的项目中。此时已经是2008年的6月了,我们几个人聚在一起萌生出与广大读者分享这个解决方案的想法,经过4个人半年多的努力,这本书终于要和大家见面了。
本书作者
本书作者都是来自于知名企业的一线人员,他们同时也是Java社区资深的专家,现在共同创办了蓝光(BlueLight)社区,主要从事IT技术咨询与服务,其范围包括Java/JEE活跃的开源框架、IBM SOA产品、Sun主流产品、Oracle主流产品和Linux/UNIX 6等。全书由4位作者编写,其中第1章和第10章由雨虹编写,第2~5章由王冠宇编写,第6章和第7章由齐天编写,第8章和第9章由秋实编写。
致谢
本书承Sun中国专业服务部门首席架构师、Sun中国工程研究院软件经理梅其波的审阅,他们的指点对本书的改进和完善起了很大作用,在此深表感谢。
本书在编写过程中得到了多家IT培训机构的热情支持和帮助,他们是国信蓝点的尹德树(创始人)、程式先峰的黄井洋(创始人)和嘉木华科技的王建中(创始人),在此一并感谢。
本书的出版,绝不仅仅是作者付出辛苦的劳动就能实现的,幕后工作者的名字不应该被埋没。感谢博文视点的编辑李雨来、葛娜以及为本书顺利出版做过贡献的人。
本书中用到的开源软件,读者可以到www.broadview.com.cn/08476下载。
由于作者水平所限,书中肯定存在许多不足之处,敬请读者批评指正,联系邮箱:bluelight.org@gmail.com