技术开发 频道

JSF问题多多、谁将为JSF画龙点睛



    【IT168 专稿】JSF(Java Server Faces)是用于 Java Web 应用程序的第一个标准化的用户界面框架。JSF 正开始凭借其 Java Web 标准的地位主导 Java Web 应用程序市场。

随着更多的开发人员使用 JSF 作为基础来架构应用程序,他们逐渐发现 JSF 的核心规范中清楚地说明: JSF 不是为成为一个完整的 Web 应用程序框架而设计的。相反,它提供一个健壮的、事件驱动的 API 和 UI 组件库,用于构建更复杂的应用程序框架。

2006年是JSF(Java Server Faces)迈向实用的第一个年头。这一年,JSF发生了几件大事:
1.         获得Framework of the Year荣誉称号;
2.         Sun发布Java Studio Creator 2;
3.         Exadel实现JSF对Ajax的支持;
4.         Apache推出Myfaces Core 1.1.3和Tomahawk 1.1.2;
5.         Sun推出JavaServer Faces 1.2。

JSF,做为JCP(Java Community Process)关于表现层的一种组件式框架,一路走来,几多欢喜几多愁,充斥着非常多的争议。现如今依然充满着关于它的各种非议之声。JSF在服务器端所存在的不足将继续成为人们所诟病的话题。

一、组件不足,导致JSF成为空军司令
       众所周知,JSF被宣称为为一种组件式框架。它提供的组件有:各种输入框(hidden、text area、single field),按钮,单选框与多选框,超级链接,数据表,简单的Grid。这些组件都是标准界面用户所必需的,且数据表组件似乎是比较实用且独特的组件。

       但问题在于,做为组件式框架,这些组件显得太寒碜。那么怎样的组件比较有用呢?对一个标准的Web应用程序,用户界面常用到的组件有:用户登陆、查找、查看、增加、注销。

       那么在JSF中,有登陆组件么?有查询框组件么?有数据录入组件么?有数据流么?有会话状态么?在JSF中没有。当然JSF实现这些东西绝对没有什么问题。而且很多组织(软件供应商、开源组织)已经开发出了这样的组件,如Seam、IceFaces、RichFaces、Tomahawk、NetAdvantage等等。同时,一些关于JSF的书籍中也有类似的代码,如《JSF:The Complete Reference》(Schalk,Burns)、《JSF In Action》(Mann)及《Core JSF》(Geary)。甚至有些东西在web网站上都已经有了。关于JSF比较好的网站如:IBM developerWorks、http://java.sun.com、http://www.jsfcentral.com、http://www.jsftutorials.net等等。

       上述大部分的参考资料与网站提供的组件都是基于JSF开发的。它们几乎都没有使用servlet过滤器(除了少数案例),同时也没有使用servlets,而是在生命周期内使用JSF组件开发。

       但绝大部分的书籍资料都集中于inputText及一些相关的组件上。导航和数据输入/输出组件是很重要,但专门研究这些组件的JSF顾问也只能告诉人们这些组件同以前别的组件是如何的不一样。

       JSF基于组件的设计理念是非常好的。但是JSF不应该仅仅只关注一些基础的web组件开发,它更应多关注做为标准与参考实现的双重身份。做为用户组件模型,至少应该能很好的保持用户的事件及状态,并且能简易的从模型是查找组件。但目前的JSF实现,尚缺欠此功能。
0
相关文章