快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
Struts 的基础上有所改进,但是它们 仍然没有 Struts 那样被广泛接受(或者没有那么成熟,有人可能对此有争议)。并且也不 提供像 JSF 提供的那些组件模型。

关于大多数 Model 2 框架的实际问题是,事件模型太简单了(本质上是一个非常缩小的 MVC),这就给开发人员留下了太多的工作。更丰富的事件模型使得创建大多数用户期望的交 互更加容易。像 JSP 技术一样,大多数 Model 2 也很容易利用 GUI 自定义标签来混合 HTML 布局和格式化,这些标签有点类似于组件。而有些 Model 架构(比如 Struts)出现分 离行为与状态的错误,这让许多 Java 开发人员感觉自己是在进行 COBOL 编程。

更丰富的 MVC 环境

JSF 提供一个组件模型和一个比大多数 Model 2 实现更丰富的 MVC 环境。本质上,JSF 比 Model 2 架构更加接近于真正的 MVC 编程环境,尽管它仍然是一种无状态的协议。JSF 也比 Model 2 架构更方便构建更加细致的事件驱动 GUI。尽管 JSF 给了您很多事件选项( 菜单项选择、按钮单击,等等),但是大多数 Model 2 依赖于更加简单的“请求接受”。

JSF 的良好调优的事件模型,允许您的应用程序与 HTTP 细节的联系更少,并简化了开发 。通过使得更加容易将表示和业务逻辑移出控制器,以及将业务逻辑移出 JSP 页面,JSF 也 在传统的 Model 2 架构上有了一些改进。事实上,简单的控制器类根本与 JSF 没有联系, 这使得它们更加容易测试。与真正的 MVC 架构不一样,JSF 模型层不可能发出许多必须在多 个视窗(viewport)中解决的事件;此外,我们仍然在处理无状态的协议,所以这是没必要 的。用于更改或更新视图的系统事件几乎总是(为什么我敢说总是呢?)用户请求。

JSF 的 MVC 实现细节

在 JSF 的 MVC 实现中,mapping backing beans(映射支持 beans)在视图和模型之间 调停。因此,限制 backing beans 中的业务逻辑和持久性逻辑很重要。一个常见的替代方法 是,将业务逻辑委派给应用程序模型。在这种情况下,backing beans 也映射模型对象,其 中视图可以显示它们。另一种选项是,将业务逻辑放在 Business 代表中,后者充当模型。

与 JSP 技术不一样,JSF 的视图实现是一个有状态的组件模型。JSF 视图包含两个部分 :视图根和 JSP 页面。视图根是 UI 组件集合,这些组件维护 UI 的状态。与 Swing 和 AWT 一样,JSF 组件使用 Composite 设计模式来管理组件树(简单地说,容器包含组件,容 器也是一个组件)。JSP 页面将 UI 组件绑定到 JSP 页面,并允许您将字段组件绑定到 backing beans 的属性(或者属性的属性),以及将按钮绑定到事件处理器和操作方法。

下面是一个从 MVC 角度来看的示例应用程序(后面会详细介绍)。

图 1. 从 MVC 角度来看的示例应用程序

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

这已足够小了:我们来看 JSF!

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

时间:2011-04-11 IBM Rick Hightower

一个 JSF 例子

对于本文的其余部分,我把重点放在用 JSF 实际创建应用程序的详细步骤上。该示例应 用程序是 JavaServer Faces 技术的一个非常简单的演示。演示了以下几个方面:

如何为部署布局 JSF 应用程序。

如何为 JSF 配置 web.xml 文件。

如何为应用程序配置 faces-config.xml。

编写 Model beans(也叫做 backing beans)。

使用 JSP 技术构造视图。

使用自定义标签库在视图根中构造组件树。

表单字段的默认验证。

该例是一个简单的 Calculator 应用程序。创建该应用程序的目标是向终端用户呈现一个 页面,让他/她输入两个数值。因此,该页面具有两个文本字段、两个标签、两个错误消息位 置和一个 Submit 按钮。文本字段用于输入数值。标签用于标注字段。错误消息位置用于显 示针对文本字段的验证或数据转换错误消息。存在三个 JSP

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号