快速业务通道

怀疑论者的JSF: 消除关于JSF的FUD - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
件树引用视图根(view root)。

尽管使用 JSF 需要跨越一些概念上的障碍,但是这样做是值得的。JSF 的组件状态管理 、容易使用用户输入验证、细粒度、基于组件的事件处理和容易扩展的架构,都将大大简化 Web 开发。在接下来的几小节中,我将更加详细地解释这些特性中最重要的特性。

怀疑论者的JSF: 消除关于JSF的FUD(2)

时间:2011-04-11 IBM Rick Hightower

基于组件的架构

JSF 为标准 HTML 中可用的每个输入字段提供了组件标签。您也可以为应用程序的特定目 的,或者为了将多个 HTML 组件组合在一起形成一个复合体 —— 例如一个包含三个下拉菜 单的 Data Picker 组件,而编写自己的自定义组件。JSF 组件是有状态的。组件的无状态是 通过 JSF 框架提供的。JSF 使用组件来生成 HTML 响应。

JSF 的组件集包含一个事件发布模型、一个轻量级的 IOC 容器和很多用于几乎所有其他 公共 GUI 特性的组件,这些特性包括可插入呈现、服务器端验证、数据转换、页面导航管理 ,等等。作为基于组件的架构,JSF 是相当可配置和可扩展的。大多数 JSF 功能,比如导航 和托管 bean 查看,都可以用可插入的组件替换。这种程度的可插入性给予您在构建 Web 应 用程序 GUI 方面相当大的灵活性,并允许您容易地将其他基于组件的技术融入到 JSF 开发 中。例如,对于托管 bean 查看,您可以用更加全功能的 IOC/AOP Spring 框架来取代 JSF 的内置 IOC 框架。

JSF 和 JSP 技术

JSF 应用程序的用户界面包含 JSP (JavaServer Pages) 页面。每个 JSP 页面包含呈现 GUI 功能的 JSF 组件。可以在 JSP 页面中使用 JSF 自定义标签库来做以下事情:呈现 UI 组件、注册事件处理器、关联组件与验证器、关联组件与数据转换器,等等。

这就是说,JSF 并不内在地绑定到 JSP 技术。事实上,JSP 页面使用的 JSF 标签只是引 用组件,以便显示组件。当您第一次修改 JSP 页面以更改 JSF 组件的属性,并重新加载该 页面,看到没有任何事情发生时,您就会认识到这一点。这是因为标签以其当前状态查看组 件。因此,如果组件已经存在,自定义标签将不会修改它的状态。组件模型允许控制器代码 更改组件的状态(例如,禁用一个文本字段),并且当显示该视图时,将会显示组件树的当 前状态。

典型的 JSF 应用程序在 UI 中不需要 Java 代码,需要很少的 JSTL EL (JSP Standard Tag Library,一种表示语言) 代码。正如前面提到的,JSF 中有很多用于构建和装配应用程 序的 IDE 工具,并且 JSF GUI 组件似乎还有一个正在增长的第三方市场。不使用 WYSIWYG 工具也可以进行 JSF 开发。

JSF 和 MVC

JSF 是几年前学过的在 Java 平台上改进 Web 开发技术的课程的结果。这一趋势开始于 JSP 技术,这一技术很好,只是很容易在 HTML(和类 HTML)页面中混合 Java 代码。下一 次提高是 Model 1 架构,它让开发人员将大多数后端代码放入 JavaBeans 组件中,然后用 <jsp:useBean> 标签将 JavaBeans 组件导入 Web 页面。这对于简单的 Web 应用程序 工作得很好,但是许多 Java 开发人员不喜欢 JSP 技术这种与 C++ 特性(比如静态包含) 的协作。所以引入了 Model 2 架构。

本质上,Model 2 架构是用于 Web 应用程序的 MVC 的打了折扣的版本(请参阅“关于 MVC”)。在 Model 2 架构中,控制器是由 Servlets 来表示的,而显示则委派给 JSP 页面 。Struts 是一种简化的 Model 2 实现,其中的 Actions 代替了 Servlets。在 Struts 中 ,应用程序的控制器逻辑是与它的数据(由 ActionForms 表示)相分离的。对于 Struts 的 主要抱怨是,它感觉上更像过程化的,而不像面向对象的。WebWork 和 Spring MVC 是另外 两个 Model 2 架构,它们通过更加不像过程化的,在

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号