Geronimo 叛逆者: 直面 JSF
[作者]:菩提树下的杨过 [来源]:互联网 [收录时间]:2007-8-1 20:19:00

摘要:

我想了解的第一个问题是 Apache Geronimo 为什么首先关注 Apache MyFaces。

Tim 解释说它是从 Java™ 2 Platform, Enterprise Edition (J2EE) 1.4 向 Java Platform, Enterprise Edition (Java EE) 5 移植的一部分。“Geronimo 已经是 J2EE 1.4 兼容的应用服务器,但是属于 1.5 规范,需要支持 JSF,而我们提供支持的方法是使用 Apache MyFaces”。在上一期 “Geronimo 叛逆者” 专栏文章中,我想知道 Spring 最重要的功能是什么,当我继续探究下去时,我开玩笑说现在需要有个人来告诉我为什么 JavaServer Faces (JSF) 这样火爆。您不知道,摆在我桌面上的下一件事就是需要 Apache Geronimo 和 Apache MyFaces 之间进行交互,主要集中在其 JSF 的实现。嗯,现在变成一件好事了。我与 IBM® 的 Tim McConnell 进行了一次会谈,他目前正在将 Geronimo 与 MyFaces 集成,我了解到了比预期多得多的关于实际上怎样实现此类规范的内容。

什么是 Apache MyFaces?

我想了解的第一个问题是 Apache Geronimo 为什么首先关注 Apache MyFaces。Tim 解释说它是从 Java™ 2 Platform, Enterprise Edition (J2EE) 1.4 向 Java Platform, Enterprise Edition (Java EE) 5 移植的一部分。“Geronimo 已经是 J2EE 1.4 兼容的应用服务器,但是属于 1.5 规范,需要支持 JSF,而我们提供支持的方法是使用 Apache MyFaces”。

我很好奇。在这里,我们认为有一项技术非常重要,实际上它已添加到了 Java EE 规范中。但它究竟是什么?Tim 告诉我 “JSF 背后的理念就是使您可以更轻松地进行 Web 应用程序开发。它是按照 Model-View-Controller (MVC) 范例建立的模型。它实际上差不多就是该范例的实现。那就是其背后的实际想法。很多没做过 Web 开发的人仍十分熟悉 MVC,因此他们可以快速地更高效地获取并学习 JSF 以及开发 Web 应用程序”。

那听起来很合理,但事情应该不止于此。因此我开始研究 JSF 到底是什么。我发现,为避免使用 JSF 而给自己带来了相当多的麻烦。

如果参与过 Java Web 开发,那么您应该已经了解 JavaServer Page (JSP)。这些是可以将 Java 代码直接嵌入到 HTML 中并且相应地执行的页面。但是更重要的是,JSP 使您可以创建表示 Java 代码的自定义标记。从服务器性能角度来看,这不但更高效,而且具有更高的可维护性,还使非技术人员能够编辑页面。

JSF 将此过程进一步加以推广。它涉及了人们在 Web 编程中常用的元素 —— 主要是表单,还包括预制的组件(那些我曾谈及的自定义标记)来帮助您完成任务。(MyFaces 还包括成百上千个附加组件可以用于添加功能)。例如,考虑清单 1 中所示的 JSF 表单。

清单 1. JSP

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
.....
















.....