开发者在线 Builder.com.cn 更新时间:2008-04-22

本文关键词: 幕后 Java EE 5 JSF JAVA

 

三年前JSF就已经在Sun的实验室里诞生,但直到今天才伴随Java EE 5,作为规范的一部分,从幕后走上前台。JSF是第一个以用户界面为核心的Java Web框架,与其他Java Web框架以“页面”为控制粒度不同的是,JSF的控制粒度已经细化到页面上的“组件”,这是JSF简化Java Web开发的关键点之一。虽然已经正式成为Java EE规范的一部分,并且获得越来越多程序员的青睐,但JSF的前途依然不容乐观。

  1. 带着“用户界面”的烙印,JSF从幕后走上前台

  伴随着从J2EE 1.4向Java EE 5的升级,JSF作为Java企业应用规范的一部分,登上了Java Web编程的舞台。雪藏了将近3年时间,经过Sun专家组的一次次修订,经过JSF支持者的一轮轮测试,经过Java Web开发社区的一波波辩论,JSF终于从Sun的实验室走出,首次以规范的名义,出现在程序员的眼前。没有鲜花、没有掌声,Sun只是简单地将JSF推 上前台,如同它的很多前辈那样,Sun给予它生命,而此后漫长的成长之路,则完全要靠它自己去走。

  刚刚踏上Java Web热土的JSF,且顾且行,前方道路上的每一处拐角,似乎都隐藏着无数的未知。前途坎坷,除了Sun那鼓励中略带担忧的目光,JSF再也没有什么可以 依靠的了。正所谓生死有命,富贵在天,在危机四伏的Java Web世界里,JSF的未来,谁也无法预测。

  JSF的全称是JavaServer Faces,这是Sun的专家组赋予JSF的名称。JavaServer这个单词大家应该耳熟能详了,JSP中的“JS”也是JavaServer的缩 写,不过与JSP中的“P”所代表的“Pages”不同的是,JSF中的“F”是个称为“Faces”的新术语。虽然Sun没有对Faces的具体含义作 出官方的解释,但是,其隐含的意义非常明显,那就是“界面”。事实上,在Sun的JSF规范中,专家组正是将JSF定义为“Java Web应用的用户界面框架”。这个定义虽然寥寥数语,十分简洁,但突出了JSF的“用户界面”特征,为JSF烙下了“用户界面”的烙印。

  Java Web的程序员期待一个用户界面框架已经很久了。虽然Java Web的框架五花八门,多不胜数,但真正以“用户界面”为核心和立足点的,JSF是第一个。多数Java Web框架,不约而同地将“页面”作为用户界面的最小元素加以控制,而JSF将用户界面的最小元素聚焦到了页面上的“组件”。

  相对于前者以页面为控制粒度的粗放模式,JSF以“组件”为控制粒度的细致模式,无疑给普通Java Web程序员带来了更大的想象空间。更为重要的是,JSF细化了控制粒度,却并没有以加大Java Web编程的复杂度为代价,相反,作为Java EE 5“简化Java开发”使命的担负者之一,JSF在Java Web编程上极大地减轻了普通程序员的负担。这点我们将在后文中,通过一个具体的实例加以论证。

2. 虽然名正言顺,JSF依然前途坎坷

  JSF对于上升为官方规范的期待,甚至比Java Web程序员对用户界面框架的期待,还要久远。JSF的历史远不止三年,其生命历程的起点,可以追溯到5年前。2001年5月,Sun在JSR#127中 提出制订一个以用户界面框架为目标的规范,经过半个月的投票表决,SE/EE执行委员会以10票同意、5票反对和1票弃权的结果批准了JSR#127。从 此,JSF踏上了生命征途。2001年5月底,JSF专家组成立,着手制订规范文档。历经多次的讨论和修订,JSF的规范1.0版,在差不多三年后的 2004年3月,才得以面世。这标志着JSF可以被普通程序员正式使用了。

  为了让JSF的程序员有一个沟通交流的场所,Sun在自己的网站上为JSF开辟了一个论坛。论坛为JSF的发展起到了极大的促进作用。来自世界 各地的JSF爱好者们,在论坛里讨论JSF的使用心得,发表疑问,寻求帮助,Sun专家组也定期不定期在论坛上露面,解答一些疑难问题。JSF1.0版的 很多Bug,就是在论坛中被发现和披露的。论坛中不乏Java高手,有一些高手在发现Bug后,甚至直接分析和修改Sun的JSF代码,给出自己的解决方 案,并在论坛中和其他开发者分享。

  名不正则言不顺,三年来,未获J2EE官方规范青睐的JSF,在JSF社区虽然被炒得热火朝天,但离普通程序员一直很远。现在,JSF终于加入 了Java EE官方规范的行列,进入Java Web编程领域已经名正言顺了。官方规范的号召力是巨大的,JSF正名也就半年时间,统计表明,JSF在这半年中吸引的开发者,超过了过去三年总和的一倍 有多。JSF的前途看上去一片光明。

  那么,JSF的眼前真的是一马平川吗?现实并非如此!横亘在JSF前进道路上的障碍,不但有强大的JSP,还有Sun那令人失望的商业推广策略。