一.JSF入门介绍
JSF即JavaServer Faces,是一种新的用于构架j2ee应用用户界面的技术,适合于基于MVC架构的应用中。
JSF入门技术的主要功能有:
◆Managed Bean 工具
◆验证工具
◆丰富且可扩展的组件库
◆插入式呈现工具包
◆对具体用户事件响应的导航
◆跨请求保留应用程序状态
◆转换模型
本文将通过cnjsf这个应用程序对以上功能进行展开描述,要理解本文,您需要对 Web开发、servlet, JSP, JavaBeans, 与标签库有一定的理解。
二.JSF入门工作原理
JSF应用程序实质上是一个运行在一个与 Java(TM) 2 Platform, Enterprise Edition (J2EE(TM) platform) 兼容的容器中的 Servlet 或者 Java Server Pages(JSP) 应用程序。但是,JSF 不要求在应用程序中使用 JSP 页面,您可以自由选择直接使用 Servlets 或者其他模板技术。如果确实对 JSP 容器使用了 JSF,您将通过 JSF 的客户组件标签从内建的 JSF 内核和 HTML 组件库中受益。JSF 组件代表像文本字段、表单、按钮、表格、复选框等的 Web 控件。
使用 JSF 创建一个 JSP 页面时在服务器的内存中会建立一个组件树,每一个组件标签对应树中的一个 UIComponent 实例该框架使用组件树来处理应用程序的请求并且创建一个呈现出的响应。当用户生成一个事件时,例如,点击了一个按钮,JSF 生命周期即处理该事件并且产生适当的响应。这是一个对大多数GUI编程的表单而言常见的一种的范例。每当用户做任何事情,如点击按钮或者提交表单,都有事件产生。然后事件消息通过 HTTP 传到服务器。在服务器端,是一个配置了叫做 Faces servlet 的特殊 servlet 的 WEB 容器。Faces servlet(javax.faces.webapp.FacesServlet)是所有 JSF 应用的引擎。每个 JSF 应用在 WEB 容器中都有独立的 Faces servlet 。
FacesServlet 是进入 JSF 框架的入口点。它处理请求处理生命周期并且用作一个前端控制器。JSF 也有保存重要请求信息的上下文的概念。上下文对象被称为 FacesContext(javax.faces.context.FacesContext)。在 JSF 生命周期的每个阶段上下文对象都被修改并且每次请求时都是有效的。
Faces servlet 的后台处理是相当复杂的。然而你没有必要了解这些细节,只需要记住:Faces servlet 为 JSP 页面创建了组件树,对组件树的控制又对应着事件。Faces servlet 知道怎么去创建组件树,因为它已经访问了当前应用中所有的 JSP 页面。Faces servlet 还会创建一个 Event 对象,并把它传递给所有注册过的侦听器。你可以通过与当前请求相对应的 FacesContext 得到这个页面的组件树。
【编辑推荐】