JSF框架开发技术浅析
2016-11-23张捷
张 捷
(黄冈职业技术学院,湖北 黄冈 438002)
JSF框架开发技术浅析
张捷
(黄冈职业技术学院,湖北 黄冈 438002)
JSF是由 SUN公司推出的一种面向组件 Web应用程序的开发技术,是J2EE 5的一个重要组成部分,同时也是对诸多Web程序规范的一种补充。文章主要是对JSF以及基于JSF的Web应用程序的开发步骤进行介绍。
Java;JSF技术;Web应用
在“互联网+”的时代到临之际,Web应用的范围越来越广泛。对于基于J2EE的平台来说,该平台是实现分布式企业应用的开发平台,但是由于可视化工具的支持较少,开发者在开发Web用户界面时编写代码任务重,开发效率低且难度大。Java 服务器界面(Java Server Faces,JSF)框架技术是基于MVC模式的开发框架,有丰富的用户界面组件,集普遍性、简单性、强大功能于一身,使得Web开发变得简单。JSF不仅包含于J2EE 规范中,而且允许开发者在一个页面中迅速高效地集合UI 组件去构建想要的Web界面。因此,开发者可以专注于应用业务逻辑的实现而摆脱HTTP细节方面的束缚。随着网络技术的发展JSF的实现会被越来越多的供应商所提供,而且JSF也会成为一种主流的新的Web 框架。
1 JSF简介概述
JSF是一种新标准的Java框架,JSF在构建Web应用程序时,使用以组件为中心的方法来开发Jave Web用户界面,简化程序的开发过程。为了确保应用程序的可维护性更高,JSF的体系结构中还集成了模型—视图—控制器(Model, View, Controller, MVC)的设计模式。
JSF是一个基于组件的框架,它和传统请求驱动的MVC开发框架不同。在开发工具的支持下,开发者不需要做太多的代码设计,Web 用户界面可以通过拖放组件的方式来进行可视化编辑,然后将用户界面上的组件与数据源进行绑定,并将用户界面管理问题交给服务器端处理就可以完成程序开发的全部过程。并且在绑定界面的值和方法同后台数据时,JSF使用统一表达式语言(Unified Expression Language, UEL)代替了以往冗长而毫无意义的 request.getParameter(),简化了表达式,提高了效率。
JSF的请求生命周期根据规范定义,包含以下6个阶段,如图1所示。
(1)重置 UI视图阶段:对于页面对应的组件树来说,一般只构建一次。用户在请求页面所对应的组件树时,如果组件树不存在,该阶段会则构建该页面的组件树,如果存在则会使用已有的组件树。
(2)应用请求之阶段:先读取客户端参数,使用processDecodes方法处理各个组件,然后在内部调用decode方法,并且由Renderer来执行decode方法。
(3)处理验证阶段:对每个组件的信息进行验证。
(4)更新数据模型阶段:在这个阶段,JSF会更新用户界面的每个组件数据模型,然后为后面的实践应用处理打好基础,做好准备。
(5)应用调用阶段:处理之前排入队列的所有应用级事件。
(6)呈现响应阶段:渲染组件树的当前状态,并且为当前请求准备响应。一旦处理完毕,Web服务器将结果通过物理传输发回给用户,然后在用户的浏览器中显示。
图1 JSF 请求处理生命周期
2 JSF优势分析
相比传统的JSP/Servlet 框架来说,JSF具有以下8个优势:
(1)全面使用了UI组件。JSF的组件是真正意义上的 UI组件,UI组件能帮助程序员在极大程度上简化代码,程序员在设计程序过程中,不需要通过复杂代码使其保持一致性,而更多地关注如何实现业务逻辑,程序员在JSF中开发Web应用程序完全不需要考虑代码之间的配合,只需考虑业务逻辑,JSF后台能保证合适的代码在合适的时候被执行。
(2)界面到业务逻辑的直接映射。如Web编辑最常见任务表单提交。在JSF下,复杂的解码、类型转换、有效性验证、状态保存、数据更新等操作这些工作的很大一部分都由框架承担,程序员的工作负担大大减轻。
(3)多阶段划分请求处理生命周期。JSF的生命周期相对与传统的JSP框架来说,更加复杂。一个完整的Web应用程序的请求处理生命周期会被JSF划分成6个阶段,分成多个处理阶段带来的最大好处就是,程序员可以在程序中引入更多的处理功能,并且可以让JSF框架来管理这一切。程序员在工作量没有增加的情况下可以获得更多的控制能力。
(4)各种各样的可视化图形开发工具。JSF带来Web应用程序开发方式革命性变化的同时,市场上各种开发工具也随之改变,应运而生。特别是图形化的开发工具,百家齐鸣,互争长短。比较有名的例如:Borland公司的JBuilder,SUN公司的Java Creator Studio,Bea公司的Workshopfor JSF等等。
(5)程序员和网页开发人员分离。传统开发中,往往会涉及网页设计人员不熟悉的标签,甚至是Java代码,使得网页设计人员与程序员工作相互交织、无法区分。在JSF中,只需要一套标准的UI组件和优秀网页编辑工具,程序员与网页设计人员可以各司其职,互不干扰,充分发挥团队合作的优势。
(6)事件驱动模式。事件在面向对象的程序设计中是一个很重要的组成部分,用户和程序间可以通过事件处理来进行很好的沟通和交流。在传统Web应用程序开发中,程序员在实现业务逻辑之外的功能市往往需要编写大量代码,浪费时间且效率低下。JSF的组件可以产生事件(例如值变化的事件),因此,JSF可以通过类似 JavaBean 的事件模式,让程序员编写逻辑代码对事件迅速作出响应。很好地解决了传统的Web 应用程序开发需要编写大量代码的这种状况。
(7)全面支持用户的自定义。JSF有很多开放的接口,这些接口可以让程序员根据自己的爱好和习惯更好地定义属于自己的开发框架,满足不同程序开发人员的不同需要。
(8)Web 应用开发的官方标准。JSF是SUN Java EE 5的重要组成部分,是当前Web开发的官方标准。在如今开发框架泛滥的时代,SUN公司树立Web开发标准能傲视群雄,独领风骚。JSF在Web应用开发领域的领先的地位毋庸置疑。
3 基于JSF开发Web应用程序的步骤
JSF是构建Web应用程序新的标准框架,使用JSF开发Web应用程序可以大大提高Web应用程序开发、运行、调试的效率。其中,使用快速开放工具RAD是实现JSF可视化开发的先决条件。RAD快速开发工具可以使程序开发的整个过程显得尤为快捷和高效。一般JSF开发Web应用程序分为3个步骤。
(1)模型设计(Model)。JSF的模型层主要通过JavaBean 程序来实现,模型层在MVC开发模式下主要是用于实现业务逻辑的。设计JSF的模型需要分析页面中组件,并依据组件处理的业务逻辑来设计。在JSF中,界面表示和应用程序逻辑是完全分离的,因此,程序员只需要在模型设计部分考虑程序的逻辑功能就可以了,不需要考虑数据的表现形式。
(2)视图设计(View)。作为与用户交互的视图层是JSF技术重点所在,是由JSF页面来实现应用程序的视图的。用户在开发工具的支持下,仅仅只需可以利用组件就可以很轻松地设计好Web 用户界面,并进行事件处理、数据验证等程序管理问题。用户只需要设计好每个JSP页面,并在页面中定义好组件,将组件与应用层的JavaBean进行绑定就可以完成程序的整个开发过程。利用RAD工具在不需要手写大量代码的情况下,通过拖放组件的方式轻松实现页面文件。页面对应的java 文件会由开发工具自动生成,页面的JSF组件会在文件中被定义好,并且其setter、getter方法以及JSF组件的“action”属性对应的方法也会一并生成定义。程序员可以在已有程序的基础上很方便地进行修改和调试。
(3)控制器设计(Controller)。在模型层(Model)与视图层(View)之间存在着控制器(Control),控制器的主要作用是控制管理视图与模型之间的交互工作。设计JSF的控制器是需要用到faces,javax,FacesServlet,We-bapp这几个类,并在配置文件faces config.xml和Web. xml中完成的。具体步骤如下:首先,要分析应用程序的具体情况,然后根据具体情况来配置Web应用程序的Web.xml文件。Web.xml文件主要用于实现部署的描述符并且控制JSF的生命周期;然后,配置实现导航的faces-config.xml文件,在文件中控制页面之间的跳转流程是由此文件实现的。
4 结语
JSF是基于MVC模式的开发框架,使用JSF开发Web应用程序可以使开发过程简洁而高效,并能使Web应用程序获得更好的扩展。随着网络技术的发展,JSF的应用范围会更加广泛,JSF的功能也会越来越强大,基于JSF的开发必将成为当前主流的开发模式。
[1]China IT Lab. JSF 框架中使用的设计模式介绍[EB/OL].(2010-10-25)[2009-04-20].http://Java.chinaitlab.com/model/727604.html.
[2]朱睿. JSF与Web之完美组合[J].软件世界,2007(7):66-67.
[3]裴嫣珺. JSF技术的应用及发展趋势[J].上海第二工业大学学报,2009(3):235-241.
[4]雷远平.基于JSF技术的Web应用开发研究[J].计算机与信息技术,2006(12):27-28.
Analysis of JSF framework development technology
Zhang Jie
(Huanggang Polytechnic College, Huanggang 438002, China)
JSF is a kind of development technology component oriented Web application introduced by SUN company, and it is also an important part of J2EE 5, which is also a supplement to the many Web program code. This paper is an introduction of JSF, and introduces the development process of JSFWeb application based on.
Java; JSF technology;Web application
张捷(1979— ),男,湖北黄冈,硕士,副教授;研究方向:软件设计,数据库管理。