
| 出版日期:2004-04-12 总期号:1304 本年期号:25 |
|
Sun JSF 的诱人特性
侯雅楠 早期的服务器端应用程序通过程序生成标准的HTML页面返回给客户端,客户端再使用浏览器将它们显示给用户。这种模式的最大问题是使页面显示速度变得非常慢。之后的JavaServer Page1.1(JSP)Model 1.Model 2.Struts、JSTL和JSP2.0等技术的相继推出,使得Web应用得到了显著改进,提高了代码的稳定性,并且可以更好地控制业务逻辑和表现逻辑。 然而,基于Web应用程序的开发技术还远远没有止境,直到JavaServer Faces(以下简称JSF)的出现,给J2EE应用程序的开发带来深远的影响。 JSF不是一门开发语言,而是由Sun公司推出的一种用来开发Web应用程序的技术,同时也是对诸多实现Web应用程序的规范的一种补充。早在2003年3月,Sun就提出了JSF的设计目标:第一,创建一个标准的GUI组件框架,使工具使用者可以轻松地搭建高质量的图形用户界面,并管理界面与应用程序行为的连接;第二,为GUI组件、组件状态和输入事件定义一套轻量Java基本类库,这些类库将处理GUI生命周期,特别是管理页面中组件的回归状态;第三,提供一套通用的GUI组件,包括标准HTML窗口输入元素;第四,提供一个JavaBean模型以处理客户端GUI控件和服务器端应用程序之间的事件;第五,定义一套判断输入有效性的API函数;第六,为GUI建立一套处理国际化和本地化的机制;第七,自动为不同的客户端生成不同的输出;第八,自动生成包含支持可访问性功能的输出。 基于以上需求,Sun同期发布了公众评论版和第二版公众评论版。并于2003年12月发布了最终草案。目前,JSF虽已达到EA4版,但笔者认为仍不够成熟,规范和参考实现还没有完全实现同步,很多新的语法和功能还无法使用。 JSF主要由两个部分组成:一套功能强大的API函数,用来表示UI组件、管理组件状态、处理事件、进行输入有效性验证,以及对国际化和可访问性的支持;一套包含各种页面元素的并允许自定义的JSP标签库,用来在JSP页面中显示JSF的界面。通过使用JSF所提供的简单而又实用的模型,任何开发人员都可以快速轻松地开发Web应用程序。他们可以使用大量现成的可重用的UI组件,并将这些组件与数据源连接,还可以很容易地将客户端事件和服务器端的事件处理程序绑定。强大的JSF技术可以很好地处理和管理任何复杂的用户界面,使开发人员可以将注意力集中在应用程序的开发上。 JSF通过一个控制器Servlet来提供Web应用程序生命周期管理。JSF使用7个不同的阶段来处理HTTP请求。 有效性验证 交互性是动态页面的一大特色,允许用户输入是实现交互性最基本的功能,在以往的Web应用程序开发中,对于输入有效性的验证方法可谓五花八门,有些开发者为了节省时间,干脆不进行验证,导致了许多错误的出现。因此JSF规范了输入有效性的验证方法。JSF支持的有效性验证包括两类:内置有效性验证和自定义有效性验证。 页面导航 页面导航是Web编程的重要组成部分。程序越复杂,管理用户页面调度就越困难。JSF通过把页面导航规则定义在一个XML配置文件中来解决这一问题。一个应用程序只有一个配置文件,其中包含整个应用程序的导航规则。每一个导航规则包括一个源页面和多个目标页面,每个目标页面对应一个导航条件。这些导航规则可以用一个树状结构表示,你可以轻松地找到你需要的导航路径。在其它页面中,你不要添加任何导航信息,只需按照导航规则在需要跳转的地方填写导航条件,当条件满足时,控制Servlet自然会按照导航规则进行页面跳转。同时,将导航规则写在一个XML文件中使得修改变得非常容易。这种方式解决了开发人员的一大难题,使得JSF将会成为Web开发的首选。
JSF的生命周期图 |
|||||||||||||||||||||||||