内容简介 本书由著名畅销书作家、JSF 1.0专家组成员David Geary主笔,是JSF编程图书中的绝对“头号指南”,自第一版出版以来,一直是广大JSF学习者的首选教程。 本书全面深入地讲解了JSF 1.2编程的各个方面,包括JSF的各种增强特性、强大的Ajax开发技术,以及使JSF更具价值的开源创新内容,为创建高性能的应用程序提供系统级的最佳实用方案。两位传奇作者利用自身对Java平台的透彻理解,为读者提供了大量解决方案、技巧、提示和编写优秀JSF 1.2产品代码的方法,无论读者是JSF或者servlet方面的新手还是老手,都将大受裨益。
2002年在JavaOne大会上第一次发布JavaServer Faces (JSF)的时候,这消息令我们非常兴奋。我们在客户端Java开发方面都具有丰富的经验,并已出版了David编写的Graphic JavaTM和Cay编写的Core JavaTM,由Sun Microsystems出版社出版。第一次使用servlet和JavaServer Pages (JSP)编写Web程序的时候,我们发现它不是很直观并且很乏味。现在JavaServer Faces在Web应用程序前端提供了友好的外观,使程序员只需考虑文本字段和菜单而不用为页面跳转和请求参数烦恼。当我们提出写一本JSF书的想法时,出版商迅速作出回应,建议我们一起就这一技术为Sun Microsystems出版社写本书。 直到2004年JSF专家组(David是成员之一)才发布JSF 1.0规范和参考实现。之后在很短时间内,又发布了漏洞修补版本1.1。在2006年,增量1.2版发布,添加了许多清理和方便的特性。 现在,JSF是服务器端最杰出的Java Web框架,它兑现了自己的大部分承诺。开发人员确实可以通过在表单上放置组件,将它们链接到Java对象来设计Web用户界面,而不必混合代码和标签。JSF的一个强大之处在于它是可拓展的组件模型,并且有大量的第三方组件可用。灵活的框架设计使它能够更好地扩展,并能容纳新技术,例如Ajax。框架的设计用于支持工具,最终产生了支持拖放的GUI构建器。最后,对于其他竞争技术,一旦深入表面,就立刻会跌下深崖;与这些竞争技术不同,JSF支持最困难的部分——表示和业务逻辑的分离、导航、连接外部服务和配置管理。 我们现在仍然因JSF而兴奋不已,而且也希望读者通过学习这个技术成为更加高效的Web应用程序开发人员,也能同我们一起分享这种快乐。 关于本书 本书面向Web开发人员(主要关注用户界面设计)和程序员(实现Web应用程序可重用的组件)。这与官方JSF规范形成了鲜明的对比,官方规范是一本厚重、庞大的文本文档,它的主要读者是框架实现人员和撰写书籍的作者。 本书的前半部分,直到第6章,着重讲解JSF标签。这些标签类似于HTML表单标签。它们是JSF用户界面的基本构建块。不是所有的程序都需要使用这些标签。我们假设网页仅需要基本的HTML技术,而业务逻辑需要标准的Java编程。 本书第一部分涵盖下面的主题: ● 设置编程环境(第1章) ● 将JSF标签连接到应用程序逻辑(第2章) ● 页面间导航(第3章) ● 使用标准JSF标签(第4和第5章) ● 转换和验证输入(第6章) 从第7章起,我们开始详细讨论JSF编程,包括如何完成高级任务和扩展JSF框架。下面是第二部分的主题: ● 事件处理(第7章) ● 在多个页面中包含公共内容(第8章) ● 实现自定义组件、转换器和验证器(第9章) ● 连接到数据库和其他外部服务(第10章) ● Ajax(第11章) ● 开源技术,重点放在Facelets、Seam和Shale(第12章) 本书最后一章回答各种“如何实现……”的常见问题(第13章)。我们建议读者在熟悉了JSF的基础之后,就快速地浏览这一章。其中包含关于调试和日志的有用说明,也提供了JSF缺少功能的实现细节和工作代码,例如文件上传、弹出菜单和长表的分页组件。 JSF是在servlet和JSP基础上建立的,但是从JSF开发者的角度看,这些技术仅组成了低层系统。虽然熟悉其他网络技术例如servlet、JSP或Struts没有坏处,但我们会假设读者不熟悉这些知识。 所需软件 本书需要的所有软件都可以免费获得。包括Sun Microsystems的Java软件开发工具包和支持JSF的应用程序服务器,例如优秀的开源项目GlassFish。该软件可以运行在Linux、Mac OS X、Solaris和Windows上。我们在Linux和Mac OS X上使用Java 5来开发本书中的示例代码。 如果读者正在寻找支持JSF的开发环境,我们可以真诚地向您推荐免费软件NetBeans IDE。较好支持JSF的Eclipse可以从销售Eclipse增强版的几个供应商那里得到。 网络支持 本书的支持网站是,其中包含: ● 本书中所有例子的源代码(从www.tupwk.com.cn中也可下载源代码) ● 我们认为浏览形式比打印形式更有效的参考资料 ● 本书和代码中已知的错误列表 ● 用于提交更正和建议的表单 另外,大家可以通过wkservice@vip.163.com向我们反馈建议和堪误信息。