`
Spring_g
  • 浏览: 63934 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSF简介

    博客分类:
  • JSF
阅读更多
与微软Visual Studio.NET程序开发有可视化工具的支持相比,人们在开发基于Java的Web用户界面时仍然需要手工书写大量的标签,同时还要考虑页面状态信息的保存、客户端事件处理等问题,开发难度比较大,效率较低,重用性差。Java Server Faces(JSF)技术正是为了解决这一问题应运而生的,其最引人注目的特性之一是它与标记语言、协议、客户端设备无关。利用JSF提供的可重用、可扩展、基于组件的用户界面框架,在快速开发工具RAD的支持下实现可视化开发。现在JSF技术已经得到了许多大厂商的支持,如Sun公司的JSF Web UI、IBM公司的JSF extension以及Oracle的ADF Faces等,许多开源项目也提供对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 Server Faces(JSF)是一种用于构建Web应用程序的新标准Java框架。它提供了一种以组件为中心来开发JavaWeb用户界面的方法,从而简化了开发。“企业开发人员”和Web设计人员将发现JSF开发可以简单到只需将用户界面(UI)组件拖放到页面上,而“系统开发人员”将发现丰富而强健的JSF API为他们提供了无与伦比的功能和编程灵活性。

JSF还通过将良好构建的模型—视图—控制器(MVC)设计模式集成到它的体系结构中,确保了应用程序具有更高的可维护性。

JSF是由Java Community Process(JCP)制定的一个Web应用框架标准。JSF具有良好定义的请求处理生命周期和丰富的组件层次结构,旨在推动基于Java的Web用户界面开发的简易性。利用JSF提供的可重用、可扩展、基于组件的用户界面框架,在快速开发工具RAD的支持下,可以通过拖放组件的方式对Web用户界面进行可视化编辑,将用户界面上的组件与一个数据源绑定,并将客户端用户界面产生的事件交给服务器端处理,从而大大降低基于Java的Web用户界面的开发难度,提高开发效率。

简而言之,JSF的主要部分是一个GUI组件框架和一个用于跨不同标记语言或客户端设备描述组件的灵活模型。JSF GUI组件框架使开发人员能够创建JSF应用程序的用户界面。

JSF GUI组件包括标准的HTML表单控件(如按钮)、布局组件,以及更复杂的组件,如数据表。此外,第三方还可以扩展规范中定义的基本类,来开发额外的GUI组件。

JSF组件的体系结构是这样设计的:组件的功能由组件类定义,组件的呈现由一个单独的呈现器定义。呈现器定义了组件类如何映射为适合特定客户的组件标签。

JSF的主要优势之一就是它既是Java Web用户界面标准又是严格遵循模型-视图-控制器(MVC)设计模式的框架。用户界面代码(视图)与应用程序数据和逻辑(模型)的清晰分离使JSF应用程序更易于管理。为了准备提供页面对应用程序数据访问的JSF上下文和防止对页面未授权或不正确的访问,所有与应用程序的用户交互均由一个前端控制器来处理。JSF技术做到了应用程序逻辑和表示的完全分离,是真正彻底的MVC模式。

JSF技术现在的版本是1.1,下一个版本将是1.2,它将和J2EE 5.0一起发布。

开发基于JSF的Web应用程序步骤

JSF是构建Web应用程序的新标准Java框架,可以依据JSF的框架标准手工书写Web应用程序,以文本方式像写HTML或JSP程序一样实现Web用户界面的设计;同时在开发、运行以及调试前还需要搭建系统运行平台。这样做的缺点是不能充分体现可视化开发的便捷和高效,一般是在分析Web应用程序的结构时使用。

使用快速开发工具RAD,是实现JSF可视化开发的先决条件。在快速开发工具的支持下,符合JSF标准的Web应用程序开发、运行以及调试均在IDE环境中实现,大大提高了开发的效率,整个程序开发过程快捷高效。现在获得大厂支持的RAD工具很多,比如IBM公司的WebSphere Studio,Oracle公司的JDeveloper,和Sun公司的Java Studio Creator等都提供对JSF开发的支持。

如果不使用IDE开发环境,那么在开发应用程序前,必须先搭建系统运行平台。比如安装TOMCAT和Sun的JavaWeb Services Developer Pack (JWSDP) 1.2。使用JSF时需要JSTL与JSF的标签函数库,在Web应用程序的WEB-INF\lib目录下放入所需的JAR文件。如果使用IDE开发环境,开发前期的准备工作比较简单,只需安装好IDE环境即可,不需要其他的配置,一般IDE中都有内嵌的应用服务器,足以支持程序的开发、运行和调试。不管是否使用IDE开发环境,JSF开发Web应用程序通常分为以下三个步骤:

视图设计

方便、快捷地开发基于JSF的Web应用程序,是在JSF提供了一组丰富的、可重用的服务器端用户界面组件的条件下实现的。在开发工具的支持下,用户可以很容易地在可视化环境中利用这些组件构建Web用户界面,处理组件的数据校验、事件处理等用户界面管理问题。

设计每个需要的JSP页面,在页面中放置JSF的内置组件,并将组件与应用层的JavaBean绑定。利用RAD工具能通过拖放组件的方式轻松实现页面文件,不需要手写大量代码。开发工具自动生成页面对应的Java文件,在文件中定义好了页面的JSF组件及其getter、setter方法以及JSF组件的“action”属性对应的方法等。程序员可以方便地在已有程序的基础上修改、调试。

模型设计

JSF技术做到了应用程序逻辑和表示的完全分离。在模型设计部分,程序员只需要考虑程序的逻辑功能,不需要考虑数据的表现形式。JSF的模型是通过JavaBean程序来实现的。

控制器设计

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开发工具中,人们可以像使用VisualStudio.NET一样方便快捷地构建Web用户界面,大大降低了利用Java技术实现Web用户界面的难度,提高了开发效率。

JSF具有强大的组件体系和事件处理系统,完全实现了MVC模式的应用架构,使得基于Java的Web用户界面程序开发难度大大降低,提高了开发效率,非常适用于Web页面的开发。

JSF是一个开放的标准,具有很好的可扩展性。依照JSF的规范,用户完全可以根据需求定制自己的用户界面组件、事件处理器、数据校验和转换组件等,这些组件和标准的JSF组件一样是可重用的。JSF API是直接架构在Servlet API之上的,因此JSF用户界面组件的呈现并不局限于特定的脚本技术或标记语言。表示层完全可以采用JSP之外的技术。在众多的J2EE表现层框架技术中,JSF表现出其旺盛的生命力。尽管JSF技术还有不少问题,但随着JSF技术的不断成熟和版本更新,其必将获得越来越多的应用。
分享到:
评论

相关推荐

    jsf简介-简约介绍+实例代码

    JavaServer Faces(JSF)是一种由Sun Microsystems开发的MVC(Model-View-Controller)框架,用于构建J2EE平台上的Web应用程序。JSF的核心理念是通过可重用的服务器端组件来创建用户界面,简化Web应用程序的开发。在...

    J2EE JSF 简介

    ### J2EE JSF 简介 #### 1. 什么是JSF? JavaServer Faces (JSF) 是一种用于构建Web应用程序的标准Java框架。它采用了一种以组件为中心的方法来开发Java Web用户界面,这大大简化了开发过程。JSF不仅吸引了广大的...

    JSF 简介(英文)

    JavaServer Faces (JSF) 简介与深入解析 一、JSF概述:JSF是一种标准的Web应用框架,其核心目标在于简化Web应用程序的开发过程,提供一种清晰的编程模型,支持重用组件,并能自组件构建HTML。JSF在设计上考虑到了与...

    JSF简介(xiaobo原创视频).part2.rar

    由于JSF的资源较少,继[JSF视频轻松搞定]后,现在接着发布xiaobo原创视频,希望大家多多支持! 有两部分,这是第一部分,第2个压缩包,共4个压缩包!~

    JSF简介(xiaobo原创视频).part3.rar

    由于JSF的资源较少,继[JSF视频轻松搞定]后,现在接着发布xiaobo原创视频,希望大家多多支持! 有两部分,这是第一部分,第3个压缩包,共4个压缩包!~

    JSF简介(xiaobo原创视频).part4.rar

    由于JSF的资源较少,继[JSF视频轻松搞定]后,现在接着发布xiaobo原创视频,希望大家多多支持! 有两部分,这是第一部分,第4个压缩包,共4个压缩包!~ 接着会发第二部分。

    JSF简介(xiaobo原创视频) 续.part1.rar

    由于JSF的资源较少,继[JSF视频轻松搞定]后,现在接着发布xiaobo原创视频,希望大家多多支持! 有两部分,这是第二部分,第1个压缩包,共2个压缩包!~

    JSF简介(xiaobo原创视频) 续.part2.rar

    由于JSF的资源较少,继[JSF视频轻松搞定]后,现在接着发布xiaobo原创视频,希望大家多多支持! 有两部分,这是第二部分,第2个压缩包,共2个压缩包!~

    jsf快速入门教程

    JSF简介** JSF是一个MVC(Model-View-Controller)框架,它简化了创建和维护动态Web页面的过程。JSF提供了组件模型,允许开发者使用预定义的UI组件来构建用户界面,这些组件可以方便地在服务器端处理用户交互。 **...

    JSF入门

    一、JSF简介 JSF是Java EE标准的一部分,由Oracle公司维护。它提供了一种声明式的方式来处理Web页面和后端服务器之间的交互,减少了开发者编写大量HTML和JavaScript代码的需求。JSF的核心理念是通过组件化的方式来...

    ajax4jsf实例

    Ajax4JSF简介 Ajax4JSF 是基于JSF 1.x 和 RichFaces 3.x 的一个组件库,旨在简化JSF应用中的Ajax集成。它提供了多种预定义的Ajax行为和组件,使得开发人员能够通过声明式的方式在JSF页面上添加Ajax特性,提高用户...

    JSF 很全面的帮助文档

    1. JSF简介: JSF是一个MVC(模型-视图-控制器)架构的框架,简化了创建基于Java的动态Web页面的过程。它将业务逻辑与用户界面分离开来,使得开发和维护更加高效。JSF使用可重用的UI组件,如按钮、表单和数据展示...

    jsf+spring整合

    **JSF简介** JavaServer Faces(JSF)是一种MVC(模型-视图-控制器)框架,由Java Community Process(JCP)开发。它简化了用户界面组件的创建和管理,通过XML配置文件和JavaBeans组件实现视图与模型的分离。JSF的...

    《JSF入门》简体中文版.pdf

    1. JSF简介 JSF是Java社区过程(JCP)发起的项目,提供了一种标准化的方式来构建组件化、基于事件驱动的Web应用程序。它允许将用户界面层的HTML内容与后端业务逻辑分离开来,提供了一种系统化的组件模型,使得用户...

    《JSF入门》培训教程PPT

    一、JSF简介 JSF是Java EE规范的一部分,它简化了开发人员创建基于Java的Web应用的过程。JSF提供了一组可重用的UI组件,可以像HTML元素一样在页面上使用。这些组件通过后台的数据模型与业务逻辑进行交互,从而实现...

    JSF开发介绍JSF开发介绍

    **JSF简介** JSF的核心是UI组件,它们通过自定义标记在JSP页面中使用,这些标记与renderer关联,使得组件可以以多种方式呈现。例如,同一个UI组件可以用不同的renderer来呈现HTML或其他格式。UIComponent、Renderer...

    ajax4jsf使用中文手册

    Ajax4JSF简介 Ajax4JSF是RichFaces项目的一部分,旨在简化JSF应用中的Ajax开发。它通过在JSF组件上添加Ajax行为,使得开发者可以在不刷新整个页面的情况下更新部分视图。这极大地提高了网页的响应速度和交互性。 ...

Global site tag (gtag.js) - Google Analytics