目前Java Community Process(JCP)正在进行最终草稿审核的Java Specification Requests(JSR) 127 - Java Server Faces(JSF)(http://www.jcp.org/en/jsr/detail?id=127)就是一个基于JAVA技术的Web应用框架标准,同时也是对于J2EE标准的一个重大补充。JSF使得您能够轻松而方便地设计开发基于JAVA技术的Web应用,同时所开发出来的应用也会非常易于维护、重用和扩展。 JAVA/J2EE业界普遍认为JSF将会在不久的未来取代目前业界非常流行的Apache Struts框架。
JSF为广大基于JAVA的 Web应用用户界面的开发人员提供了标准的编程接口、丰富可扩展的UI组件库(一个核心的JSP标记库用来处理事件、执行验证以及其他非UI相关的操作和一个标准的HTML 标记库来表示 UI组件)、事件驱动模型等一套完整的Web应用框架,通过 JSF ,您可以在页面中轻松自如地使用 WEB 组件、捕获用户行为所产生的事件、执行验证、建立页面导航…,同时您会发现,当使用支持JSF的开发工具来开发 JSF 应用的时候,一切将会变得异常简单,就类似于我们现在开发VB或者PowerBuilder程序一样的简便,GUI方式拖放组件、修改组件属性、建立组件间关联以及编写事件侦听器等等
首先,JSF应用需要一些必须的运行态组件来保证其运行:
- Faces servlet - 在J2EE Web部署描述符(web.xml)中配置。Faces Servlet是一个JSF应用的引擎,同一个Web容器中的不同JSF 应用都会有一个自己的 Faces servlet ,它担任了类似于 Model-View-Controller 中controller的角色,用来控制所有发向后端应用组件的请求,使用Apache Struts框架的开发人员会发现这个组件和Struts的controller servlet异曲同工。
- Faces配置文件 - 作为一个单独的配置文件(faces-config.xml)存放在WEB-INF/lib 目录下。这个文件非常类似于Apache Struts框架的配置文件(struts-config.xml),用来担任应用组件和导航模型的主配置文件。
- 一些必须的JAR文件 - 每一个JSF应用必须的JAR文件, 存放在WEB-INF/lib 目录下: jsf-api.jar, jsf-ri.jar, jstl.jar, standard.jar, commons-beanutils.jar, commons-digester.jar, commons-collections.jar, 和 commons-logging.jar。
通常以上这些组件都能够由支持JSF的开发工具帮您自动生成或配置, 而一个完整JSF的应用除了包含上述必须的组件之外,还需要一些其他的东西,比如:
- 管理JavaBean。用来定义和Web UI组件绑定的Java对象。
- JSP和HTML文件。完成UI展现。
- 页面模板。定义了一个JSF应用统一的页面风格和一些通用的Meta设置。
- 自定义事件侦听器。用来处理用户操作或者组件状态变化产生的事件。
当然,JSF应用的UI完全可以不用JSP/HTML,而是用well-formed的XML文件来构建。
一个JSF应用实际上就是一个标准的J2EE Web应用,它有Web部署描述符、JSP文件、标记库和一系列静态资源,只不过和普通的J2EE Web应用相比,它依靠一系列运行在一个普通J2EE Web容器中的特殊组件,来达成自己特殊的运行态模式,事件驱动是其中一个很重要的特点。
摘自http://www-900.ibm.com/developerworks/cn/wsdd/library/techarticles/shengpy/jsf/jsf1.shtml