JSF之大未来(JSF简介)

Web 应用程序的开发与传统的单机程序开发在本质上存在着太多的差异,Web 应用程
序开发人员至今不可避免的必须处理 HTTP 的细节,而 HTTP 无状态的(stateless)本质,
与传统应用程序必须维持程序运行过程中的信息有明显的违背,再则 Web 应用程序面对网
站上不同的使用者同时的存取,其执行绪安全问题以及资料验证、转换处理等问题,又是
复杂且难以解决的。

另一方面,本质上是静态的 HTML 与本质上是动态的应用程序又是一项违背,这造成
不可避免的,处理网页设计的美术人员与程序设计人员,必须被彼此加入至视图组件中的
逻辑互相干扰,即便一些视图呈现逻辑以标签的方式呈现,试图 s 展现对网页设计美术人员
的亲切,但它终究必须牵涉到相关的流程逻辑。

有很多方案试着解决种种的困境,而各自的着眼点各不相同,有的从程序设计人员的
角度来解决,有的从网页设计人员的角度来解决,各种的框架被提出,所造成的是各种不

统一的标签与框架,为了促进产能的整合开发环境(IDE)难以整合这些标签与框架,另一
方面,开发人员的学习负担也不断的加重,他们必须一人了解多个角色的工作。

JavaServer Faces 的提出在试图解决这个问题,它试图在不同的角度上提供网页设计
人员、应用程序设计人员、组件开发人员解决方案,让不同技术的人员可以彼此合作又不
互相干扰,它综合了各家厂商现有的技术特点,由 Java Community Process(JCP)团队研
拟出来的一套标准,并在 2004 年三月发表了 JavaServer Faces 1.0 实作成果。

从网页设计人员的角度来看,JavaServer Faces 提供了一套像是新版本的 HTML 标签,
但它不是静态的,而是动态的,可以与后端的动态程序结合,但网页设计人员不需要理会
后端的动态部份,网页设计人员甚至不太需要接触 JSTL 这类的标签,也可以动态的展现数
据(像是动态的查询表格内容),JavaServer Faces 提供标准的标签,这可以与网页编辑程
序结合在一起,另一方面,JavaServer Faces 也允许您自订标签。

从应用程序设计人员的角度来看,JavaServer Faces 提供一个与传统应用程序开发相类
似的模型(当然因某些本质上的差异,模型还是稍有不同),他们可以基于事件驱动来开发
程序,不必关切 HTTP 的处理细节,如果必须处理一些视觉组件的属性的话,他们也可以
直接在整合开发环境上拖拉这些组件,点选设定组件的属性,JavaServer Faces 甚至还为应
用程序设计人员处理了对象与字符串(HTTP 传送本质上就是字符串)间不匹配的转换问
题。

从 UI 组件开发人员的角度来看,他们可以设计通用的 UI 组件,让应用程序的开发产
能提高,就如同在设计 Swing 组件等,UI 开发人员可以独立开发,只要定义好相关的属性
选项来调整细节,而不用受到网页设计人员或应用程序设计人员的干扰。

三个角色的知识领域原则上可以互不干扰,根据您的角色,您只要了解其中一个知识
领域,就可以运用 JavaServer Faces,其它角色的知识领域您可以不用了解太多细节。

当然,就其中一个角色单独来看,JavaServer Faces 隐藏了许多细节,若要全盘了解,
其实 JavaServer Faces 是复杂的,每一个处理的环境都值得深入探讨,所以学习 JavaServer
Faces 时,您要选择的是通盘了解,还是从使用的角度来了解,这就决定了您学习时所要花
费的心力。

站点统计