JSF技能具体先容
与微软Visual Studio.NET措施开拓有可视化东西的支持对比,人们在开拓基于Java的Web用户界面时仍然需要手工书写大量的标签,同时还要思量页面状态信息的生存、客户端事件处理惩罚等问题,开举事度较量大,效率较低,重用性差。Java Server Faces (JSF) 技能正是为了办理这一问题应运而生的,其最引人注目标特性之一是它与标志语言、协议、客户端设备无关。操作JSF提供的可重用、可扩展、基于组件的用户界面框架,在快速开拓东西RAD的支持下实现可视化开拓。此刻JSF技能已经获得了很多大厂商的支持,如SUN公司的JSF Web UI、IBM公司的JSF extension以及Oracle的 ADF Faces等,很多开源项目(典范的Apache Myfaces)也提供对JSF技能的支持。同时Oracle、Sun、Borland和IBM等公司都为JSF提供了开拓情况。
传统JSP开拓存在的问题
实现暗示层和业务层的疏散,这是J2EE Web应用一直以来的抱负,惋惜JSP 并没有真正实现这个方针。JSP是一个基于Java的Web用户界面开拓尺度技能,是一种“剧本式”开拓的Web技能,在JSP 页面中夹杂了大量用于显示逻辑的HTML 和用于业务逻辑的Java 代码,使得页面设计与措施开拓无法疏散;JSP另一个更大的缺陷是剧本不能重用,这经常导致开拓者不得不在JSP页面之间举办复制-粘贴操纵,进而导致同一段代码呈现多个版本,从而使得措施的调试和设计极其错综巨大。而标签库TagLib作为JSP的增补,将Java代码从JSP中剥离,也只是有限地实现了表示与逻辑的疏散,始终没有挣脱代码和HTML页面揉和的问题。另外,JSP还存在着其他固有的缺陷,譬喻对应Servlet编译的堕落信息很难在JSP 中找到精确的堕落位置,由此给调试带来很大坚苦。
JSF技能先容
在Sun公司提出的J2EE(Java 2 Enterprise Edition)平台上,Java Server Faces (JSF) 是一种用于构建Web应用措施的新尺度Java框架。它提供了一种以组件为中心来开拓Java Web用户界面的要领,从而简化了开拓。“企业开拓人员”和Web设计人员将发明JSF开拓可以简朴到只需将用户界面 (UI) 组件拖放到页面上,而“系统开拓人员”将发明富厚而矫健的JSF API为他们提供了无与伦比的成果和编程机动性。JSF还通过将精采构建的模子-视图-节制器 (MVC)设计模式集成到它的体系布局中,确保了应用措施具有更高的可维护性。
JSF是由Java Community Process (JCP)拟定的一个Web应用框架尺度。JSF具有精采界说的请求处理惩罚生命周期和富厚的组件条理布局,旨在敦促基于Java的Web用户界面开拓的浅易性。操作JSF提供的可重用、可扩展、基于组件的用户界面框架,在快速开拓东西RAD的支持下,可以通过拖放组件的方法对Web用户界面举办可视化编辑,将用户界面上的组件与一个数据源绑定,并将客户端用户界面发生的事件交给处事器端处理惩罚,从而大大低落基于Java的Web用户界面的开举事度,提高开拓效率。
Java Server Faces技能包罗两个主要部门:
(1) 一组用于暗示用户界面组件并打点其状态、处理惩罚事件和验证输入的JavaAPI,这些API支持国际化和可会见性(accessibility);
(2) 一个用于在JSP页面中暗示JSF 组件的自界说标签库。
简而言之,JSF的主要部门是一个GUI组件框架和一个用于跨差异标志语言或客户端设备描写组件的机动模子。JSF GUI组件框架使开拓人员可以或许建设JSF应用措施的用户界面。JSF GUI组件包罗尺度的HTML表单控件(如按钮)、机关组件,以及更巨大的组件,如数据表。另外,第三方还可以扩展类型中界说的根基类,来开拓特另外GUI组件。
JSF 组件的体系布局是这样设计的:组件的成果由组件类界说,组件的泛起由一个单独的泛起器(renderer)界说。泛起器界说了组件类如何映射为适合特定客户的组件标签。JSF 参考实现中包括了一个尺度的RenderKit,用于生成基于HTML 4.01的标志,实现将组件类泛起给HTML客户。
JSF 的主要优势之一就是它既是Java Web用户界面尺度又是严格遵循模子-视图-节制器 (MVC) 设计模式的框架。用户界面代码(视图)与应用措施数据和逻辑(模子)的清晰疏散使JSF应用措施更易于打点。为了筹备提供页面临应用措施数据会见的JSF上下文和防备对页面未授权或不正确的会见,所有与应用措施的用户交互均由一个前端“Faces”servlet(节制器)来处理惩罚。 JSF技能做到了应用措施逻辑和暗示的完全疏散,是真正彻底的MVC模式。
JSF技能此刻的版本是1.1,下一个版本将是 1.2,它将和 J2EE 5.0 一起宣布。
JSF是构建Web应用措施的新尺度Java框架,可以依据JSF的框架尺度手工书写Web应用措施,以文本方法像写HTML或JSP措施一样实现Web用户界面的设计;同时在开拓、运行以及调试前还需要搭建系统运行平台。
这样做的缺点是不能充实浮现可视化开拓的便捷和高效,一般是在阐明Web应用措施的布局时利用。
#p#分页标题#e#
利用快速开拓东西RAD,是实现JSF可视化开拓的先决条件。在快速开拓东西的支持下,切合JSF尺度的Web应用措施开拓、运行以及调试均在IDE情况中实现,大大提高了开拓的效率,整个措施开拓进程快捷高效。此刻得到大厂支持的RAD东西许多,好比IBM公司的WebSphere Studio,Oracle公司的JDeveloper,和Sun公司的Java Studio Creator等都提供对JSF开拓的支持。
假如不利用IDE开拓情况,那么在开拓应用措施前,必需先搭建系统运行平台。好比安装TOMCAT和Sun的Java Web Services Developer Pack (JWSDP) 1. 2。利用JSF时需要JSTL 与JSF的标签函数库,在Web应用措施的WEB-INF\lib目次下放入所需的JAR文件。假如利用IDE开拓情况,开拓前期的筹备事情较量简朴,只需安装好IDE情况即可,不需要其他的设置,一般IDE中都有内嵌的应用处事器,足以支持措施的开拓、运行和调试。
不管是否利用IDE开拓情况,JSF开拓Web应用措施凡是分为以下三个步调:
(1)视图设计
利便、快捷地开拓基于JSF的Web应用措施,是在JSF提供了一组富厚的、可重用的处事器端用户界面组件的条件下实现的。在开拓东西的支持下,用户可以很容易地在可视化情况中操作这些组件构建Web用户界面,处理惩罚组件的数据校验、事件处理惩罚等用户界面打点问题。
设计每个需要的JSP页面,在页面中安排JSF的内置组件,并将组件与应用层的JavaBean绑定。操作RAD东西能通过拖放组件的方法轻松实现页面文件,不需要手写大量代码。开拓东西自动生成页面临应的java文件,在文件中界说好了页面的JSF组件及其getter、setter要领以及JSF组件的“action”属性对应的要领等。措施员可以利便地在已有措施的基本上修改、调试。
(2)模子设计
JSF技能做到了应用措施逻辑和暗示的完全疏散。在模子设计部门,措施员只需要思量措施的逻辑成果,不需要思量数据的表示形式。JSF的模子是通过JavaBean措施来实现的。
JSF的模子是按照页面中组件需要处理惩罚的业务逻辑而设计实现的。在JSF中利用JavaBean可以直接在JSF页面中声明可能在设置文件faces-config. xml中声明。
假如手工陈设应用,则编译完成的JavaBean文件应放到Web应用措施的WEB-INF\classes目次下(TOMCAT情况下);假如借助于RAD开拓东西,设计人员就不需要思量陈设的细节,开拓东西会自动把实现了业务逻辑的JavaBean文件(未编译的java文件和编译乐成后的jar包)乐成地陈设在相关位置。
(3)节制器设计
JSF的节制器设计是在设置文件中完成的,相关的主要有两个文件:web.xml文件和faces-config.xml文件(均在WEB-INF目次下)。web.xml文件主要用于节制JSF的生命周期,实现陈设描写符。faces-config.xml文件实现导航,在文件中节制页面之间的跳转流程。
设置步调是首先设置Web应用措施的web.xml文件,然后是设置JSF的节制文件faces-config.xml文件。这两个文件名目牢靠,在IDE情况中这个进程由东西自动完成,不需要设计人员的过问,纵然手工设置也较量简朴。
JSF的技能重点在View部门,它实现了Web应用措施设计脚色的完全疏散。JSF网页设计者只需要专注于页面的设计;应用措施开拓者主要体贴Model部门的JavaBean的开拓;措施的流程节制则由faces-config.xml专门设置。
总结
JSF是基于Java 的Web 应用开拓规模里提供了一个可重用、可扩展、基于组件、东西友好的处事器端UI 框架。在支持JSF 的RAD开拓东西中,人们可以像利用Visual Studio. NET一样利便快捷地构建Web 用户界面,大大低落了操作Java技能实现Web 用户界面的难度,提高了开拓效率。
JSF具有强大的组件体系和事件处理惩罚系统,完全实现了MVC模式的应用架构,使得基于Java的Web用户界面措施开举事度大大低落,提高了开拓效率,很是合用于Web页面的开拓。
JSF是一个开放的尺度,具有很好的可扩展性。依照JSF 的类型,用户完全可以按照需求定制本身的用户界面组件、事件处理惩罚器、数据校验和转换组件等,这些组件和尺度的JSF 组件一样是可重用的。JSF API 是直接架构在Servlet API 之上的,因此JSF 用户界面组件的泛起并不范围于特定的剧本技能或标志语言。暗示层完全可以回收JSP 之外的技能。
在浩瀚的J2EE表示层框架技能中,JSF表示出其旺盛的生命力。尽量JSF技能尚有不少问题,但跟着JSF技能的不绝成熟和版本更新,其必将得到越来越多的应用。