JavaServer Faces (JSF)
简介JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架。它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化了开发。JavaServer Faces 还引起了广大 Java/Web 开发人员的兴趣。“企业开发人员”和 Web 设计人员将发现 JSF 开发可以简单到只需将用户界面 (UI) 组件拖放到页面上,而“系统开发人员”将发现丰富而强健的 JSF API 为他们提供了无与伦比的功能和编程灵活性。结构JSF 还通过将良好构建的模型-视图-控制器 (MVC) 设计模式集成到它的体系结构中,确保了应用程序具有更高的可维护性。最后,由于 JSF 是通过 Java Community Process (JCP) 开发的一种 Java 标准,因此开发工具供应商完全能够为 JavaServer Faces 提供易于使用的、高效的可视化开发环境。
JSF 体系结构
JavaServer Faces 的 MVC 实现JSF 的主要优势之一就是它既是 Java Web 用户界面标准又是严格遵循模型-视图-控制器 (MVC) 设计模式的框架。用户界面代码(视图)与应用程序数据和逻辑(模型)的清晰分离使 JSF 应用程序更易于管理。为了准备提供页面对应用程序数据访问的 JSF 上下文和防止对页面未授权或不正确的访问,所有与应用程序的用户交互均由一个前端“Faces”servlet(控制器)来处理。
图 1:JavaServer Faces 的 MVC 实现JSF 生命周期Faces Controller servlet 充当用户和 JSF 应用程序之间的纽带。它在明确限定的 JSF 生命周期(规定了用户请求之间的整个事件流)的范围内工作。例如,一收到访问 JSF 应用程序的初始 Web 请求,Faces Controller servlet 便通过首先准备 JSF 上下文(存放所有应用程序数据的一个 Java 对象)来处理请求。然后控制器把用户指引到所请求的页面。该页面通常使用简单的表达式语言来处理来自 JSF 上下文的应用程序数据。一收到后续请求,控制器就更新所有模型数据(假设输入了新数据)。JSF 开发人员可以通过编程的方式在应用程序运行期间随时访问整个 JSF 生命周期,从而可以随时对应用程序的行为进行高度控制。JSF 参考实现目前比较优秀的由sun实现和 apache 的myfaces实现sun 实现网址:参见扩展阅读有实现的jar 包下载。apache实现网址:参见扩展阅读最新版本,都支持JSF 2.0规范。JSF2.0的一些新特性为了更好的支持Ajax,扩大了请求处理生命期。将“树结构的生成”和“树结构的使用”分成两个独立的生命期阶段。允许部分树在生命期内通过Ajax来访问**允许可标记的JSF页面。更广泛的说,如果HTTP GET 可以使用,该JSF页面就可以使用。更合适的客户端之间和内部组件,表单级的验证(如果可以使用JSR303验证)对绑定和分发与某个组件相关静态资源的良好支持,包括:图片、样式表、脚本等。也应该能指定资源的默认位置。对标准html组件的策略性补充:日期选择其,树、标签浏览、文件上传控件。提供某种机制,以尽量减少“丢失更新”和“复制按钮按下”的问题。这些机制必须是插件形式或可由用户定制。页面动作:是指“当页面加载时,调用这些动作(如果有必要的话,可以通过Ajax)”。提供一种机制,使得访问持久存储变得容易。
简介JavaServer Faces (JSF) 是一种用于构建 Web 应用程序的新标准 Java 框架。它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化了开发。JavaServer Faces 还引起了广大 Java/Web 开发人员的兴趣。“企业开发人员”和 Web 设计人员将发现 JSF 开发可以简单到只需将用户界面 (UI) 组件拖放到页面上,而“系统开发人员”将发现丰富而强健的 JSF API 为他们提供了无与伦比的功能和编程灵活性。结构JSF 还通过将良好构建的模型-视图-控制器 (MVC) 设计模式集成到它的体系结构中,确保了应用程序具有更高的可维护性。最后,由于 JSF 是通过 Java Community Process (JCP) 开发的一种 Java 标准,因此开发工具供应商完全能够为 JavaServer Faces 提供易于使用的、高效的可视化开发环境。
JSF 体系结构
JavaServer Faces 的 MVC 实现JSF 的主要优势之一就是它既是 Java Web 用户界面标准又是严格遵循模型-视图-控制器 (MVC) 设计模式的框架。用户界面代码(视图)与应用程序数据和逻辑(模型)的清晰分离使 JSF 应用程序更易于管理。为了准备提供页面对应用程序数据访问的 JSF 上下文和防止对页面未授权或不正确的访问,所有与应用程序的用户交互均由一个前端“Faces”servlet(控制器)来处理。

图 1:JavaServer Faces 的 MVC 实现JSF 生命周期Faces Controller servlet 充当用户和 JSF 应用程序之间的纽带。它在明确限定的 JSF 生命周期(规定了用户请求之间的整个事件流)的范围内工作。例如,一收到访问 JSF 应用程序的初始 Web 请求,Faces Controller servlet 便通过首先准备 JSF 上下文(存放所有应用程序数据的一个 Java 对象)来处理请求。然后控制器把用户指引到所请求的页面。该页面通常使用简单的表达式语言来处理来自 JSF 上下文的应用程序数据。一收到后续请求,控制器就更新所有模型数据(假设输入了新数据)。JSF 开发人员可以通过编程的方式在应用程序运行期间随时访问整个 JSF 生命周期,从而可以随时对应用程序的行为进行高度控制。JSF 参考实现目前比较优秀的由sun实现和 apache 的myfaces实现sun 实现网址:参见扩展阅读有实现的jar 包下载。apache实现网址:参见扩展阅读最新版本,都支持JSF 2.0规范。JSF2.0的一些新特性为了更好的支持Ajax,扩大了请求处理生命期。将“树结构的生成”和“树结构的使用”分成两个独立的生命期阶段。允许部分树在生命期内通过Ajax来访问**允许可标记的JSF页面。更广泛的说,如果HTTP GET 可以使用,该JSF页面就可以使用。更合适的客户端之间和内部组件,表单级的验证(如果可以使用JSR303验证)对绑定和分发与某个组件相关静态资源的良好支持,包括:图片、样式表、脚本等。也应该能指定资源的默认位置。对标准html组件的策略性补充:日期选择其,树、标签浏览、文件上传控件。提供某种机制,以尽量减少“丢失更新”和“复制按钮按下”的问题。这些机制必须是插件形式或可由用户定制。页面动作:是指“当页面加载时,调用这些动作(如果有必要的话,可以通过Ajax)”。提供一种机制,使得访问持久存储变得容易。