一 . JSF 的优点
1. JSF优势之一:UI组件(UI-component)
例如,在页面上放置一个文本输入框,这个输入框立即具备了数据填充、界面更新、事件侦听、动作触发、有效性检查和类型转换的功能。更为重要的是,程序员只需根据业务逻辑编写核心业务代码,JSF会保证代码在合适的时候被执行,完全不用考虑代码与代码之间该如何来配合。
2. JSF优势之二:事件驱动模式
JSF做了所有该做的事,留给程序员的只有业务逻辑代码的编写
3. 用户界面到业务逻辑的直接映射
举个例子,表单提交是Web编程最常见的任务,也是最复杂的任务之一。当用户在网页上点击“确定”按钮时,浏览器将生成一个HTTP请求,发往服务器端的某个Servlet,执行该Servlet的service方法。在service方法中,HTTP请求需要经历解码、类型转换、有效性验证、状态保存、数据更新等环节,处理这些环节的所有细节,对程序员来说是沉重的负担.
4. 程序员和网页设计人员的分工
这是因为JSP页面中掺入了网页设计人员所不熟悉的一些JSP标签,甚至是晦涩的Java代码。要求网页设计人员理解这些标签和代码是不现实的,不符合分工合作的原则。在JSF中,框架为网页设计人员提供了一套标准的UI组件,在工具的支持下,可以通过拖放简单地添加到网页上,然后设置某些显示属性来满足视觉要求
5. 请求处理生命周期的多阶段划分
JSP的生命周期非常简单,页面被执行时,HTML标记立即被生成了,生命周期随即结束。而一个完整的JSF请求-处理生命周期被精心规划为6个阶段
6. Web开发的官方标准之一
JSF终于在2006年年中成为Java EE 5的组成部分,上升为Web开发的官方标准之一
二 . JSF 的工作原理
理解 处理请求的 6个生命周期
Lifecycle |
FacesContext |
FacesServlet |
创建 FacesContext |
把控制权交给Lifecycle |
分6个阶段处理 FacesContext |
1.Restore view 重建组件树
2.Apply request values. 应用请求值
3.Process validations. 验证处理
4.Update model values. 更新模型值
5.Invoke applications. 业务处理
6.Render response. 呈现响应
三 . 一个简单的JSF应用 包含的组件
1. 模型层
javaBeans 配置
2. 控制层
3. 视图层
JSF标签库 事件监听器(标签+配置+class) 验证器(标签+配置+class)
转换器(标签+配置+class)
4. 配置文件
faces-config.xml