本文介绍JSF是什么,以及JSF 体系结构,JSF 生命周期和JavaServer Faces 的用户界面组件等。

JSF是什么

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(操控器)来处理。

简述JSF是什么(JSF是什么意思)  JSF是什么 第1张

图1 JavaServer Faces 的 MVC 完成

JSF 生命周期

Faces Controller servlet 充任用户和 JSF 应用程序之间的枢纽。它在清晰限制的 JSF 生命周期(规则了用户恳求之间的整个拜见流)的范围内作业。例如,一收到拜访 JSF 应用程序的初始 Web 恳求,Faces Controller servlet 便经过首要预备 JSF 上下文(寄存避实就虚应用程序数据的一个 Java 目标)来处理恳求。然后操控器把用户指引到所恳求的页面。该页面一般运用简略的表达式打量来处理来自 JSF 上下文的应用程序数据。一收到后续恳求,操控器就更新避实就虚模型数据(假定输入了新数据)。JSF 开发人员能够经过编程的方法在应用程序运转期间随时拜访整个 JSF 生命周期,然后能够随时对应用程序的行为进行高度操控。

JavaServer Faces 的用户界面组件

JavaServer Faces 的真实威力在于它的用户界面组件模型。在该模型中,应用程序彻底用组件调集构建,这些组件能够针对多种客户端类型用不同的方法来进行显现。与其他专有技能(如 ASP.Net)有点相似,JSF 的 UI 组件模型技能使开发人员能够运用预先构建的用户界面 (UI) 组件来构建 Web 用户界面(而非彻底从头构建用户界面),然后供给了史无前例的开发功率。JSF UI 组件有多种形式,能够简略到仅仅显现文本的 outputLabel,或许杂乱到能够表明来自数据调集(如数据库表)的表格化数据的 dataTable。

JavaServer Faces 规范在其参阅施行中供给了一组根本 UI 组件,这些组件本身对错常有用的。它们包括两个组件库,即“HTML”组件库 — 它大部分映射了规范的 HTML 输入元素;以及“中心”库 — 它辅佐常见的应用程序开发使命(如,国际化和验证/转化输入数据)。除了供给一个根本 UI 组件库之外,JSF API 还供给了扩展和创立定制 JSF UI 组件的功用,然后在根本组件之上供给更多功用。

其他用户界面组件库

由于 JSF API 的丰厚性和灵活性,许多 Java 开发人员开端创立新的 JSF 组件库和完成。Oracle 的 ADF Faces 是一个彻底符合 JSF 规范的组件库,它为 JSF 应用程序开发供给了一组广泛的增强 UI 组件。这些组件包括针对每种客户端类型的多种出现器、高档表格、色彩和日期挑选器以及很多通用组件(如菜单、指令按钮、搬运挑选器和进展指示计)。

简述JSF是什么(JSF是什么意思)  JSF是什么 第2张

图2 Oracle 的 ADF Faces JSF UI 组件

除了 Oracle 的 ADF Faces 之外,还有其他新的 JSF 组件库开端从开放源代码社区和软件供货商社区中出现。MyFaces 便是一个新 JSF UI 组件库的比如,它经过 Apache 作为一个开放源代码项目供给的。Myfaces 仍是对 JSF 根本 UI 组件的增强,它具有更广泛的 UI 功用,如集成的 Tiles 支撑、支撑 Javascript 的菜单和树控件。

简述JSF是什么(JSF是什么意思)  JSF是什么 第3张

图3:开放源代码的 MyFaces 完成和 UI 组件库

JSF UI 组件的可刺进出现技能

JSF UI 组件技能最有目共睹一个方面便是它的可刺进出现功用。JSF UI 组件能够依据检查组件的客户端的类型来以不同方法出现本身。例如,HTML 浏览器将看到特定 UI 组件的“HTML 浏览器友爱”版别,而支撑无线或 WAP 的微型设备将看到同一 UI 组件的“WML 友爱”版别!JSF 经过免除 UI 组件与其出现逻辑之间的耦合然后能够为同一 UI 组件创立多个出现器完成了这一功用。不同的出现器能够与 UI 组件相关联,在运转时 UI 组件能够依据恳求的客户端类型决议运用哪个出现器。

简述JSF是什么(JSF是什么意思)  JSF是什么 第4张

图4:一个 ADF Faces 表格组件针对无线客户端和 HTML 客户端进行了不同的出现

还应当指出的是,由于 JSF 的可刺进出现功用,使得 JSF UI 组件能够显现任何类型的数据,不管它是符号数据(如 HTML、XML、WML 等)仍是二进制数据。例如,UI 组件还能够显现二进制数据,如图画流或不同的文档类型,如 SVG、PDF 和 Word。

一个新的 JSF 组件开发人员社区

跟着 JSF 开发人员和拥护者社区的不断强大,现在有几个网站致力于进一步推进独立的 JSF 开发。JSFCentral 便是一个彻底为 JSF 开发社区服务的新网站。它包括 JSF 技能信息、产品/组件信息以及很多与 JSF 相关的文章。

JSF 开发工具

由于 JavaServer Faces 是一种规范的 Java 技能,因而软件开发工具彻底能够为 JavaServer Faces 供给高档的集成开发工具支撑。多个供货商现在不同程度地支撑 JSF 开发,这大大提高了 JSF 的易用性和功用。Oracle、Sun、Borland 和 IBM 都为 JavaServer Faces 供给了开发环境。由于开发工具供货商在竞相供给更好、更简略和更多的开发环境,因而根据 IDE 的 JSF 开发具有夸姣的远景!

简述JSF是什么(JSF是什么意思)  JSF是什么 第5张

图5:Oracle 的 JDeveloper 供给高效、可视化的 JSF 开发体会

总结

JSF是什么?JavaServer Faces 经过供给模型-视图-操控器规划形式的一个简练完成,一起在不献身开发才能和灵活性的前提下供给高效的以组件为中心的开发,处理了 Java Web 开发的许多历史问题。此外,由于 JSF 是一种 Java 规范,因而多个软件供货商将持续供给一直高效的开发环境,这些开发环境毫无疑问将到达或很可能超越专有的可视化开发环境。请持续重视!

【修改引荐】

  1. JSF与Spring的集成
  2. 学习JSF的生命周期
  3. 在JBOSS服务器上运用Myfaces的JSF完成
  4. 挑选JSF的理由:从UI组件开端
  5. JSF中f:loadBundle标签的运用办法
转载请说明出处
知优网 » 简述JSF是什么(JSF是什么意思)

发表评论

您需要后才能发表评论