JSF的技术与组件

开发 后端
本文介绍JSF技术和JSF组件,包括视图设计,模型设计和控制器设计。

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

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

JSF是构建Web应用程序的新标准Java框架,可以依据JSF的框架标准手工书写Web应用程序,以文本方式像写HTML或JSP程序一样实现Web用户界面的设计;同时在开发、运行以及调试前还需要搭建系统运行平台。

这样做的缺点是不能充分体现可视化开发的便捷和高效,一般是在分析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技术的不断成熟和版本更新,其必将获得越来越多的应用。

JSF框架搭建(MyEclipse)(实现用户登录)

1.新建一个web project,选择Java EE 5.0选项,输入项目名称:JSFLoginDemo(例),点击完成。

2.菜单中选择MyEclipse,Project Capabilities--->Add JSF Capabilities,点击完成。

3.src下新建一个资源文件,命名Messages.properties(用处:做显示的国际化),写入
login_label=Please Login:
login_label=User name:

4.src下建个包,包名为com.jsfdemo

5.添加受管Bean(New Managed Bean),命名UserBean,Class:com.jsfdemo.UserBean,Scope:session,添加 userName,Property Kind:Simple,Class:java.lang.String,完成。再添加password,Property Kind:Simple,Class:java.lang.String,完成。下面两项打钩----->Next---->finish, 检查配置信息。

【编辑推荐】

  1. JSF理解组件和客户端标识符
  2. 过渡技术的Ajax及Apusic JSF
  3. ESRI为什么选择JSF
  4. 浅析对JSF项目的单元测试
  5. 构建Ajax JSF事件驱动
责任编辑:佚名 来源: CSDN
相关推荐

2009-06-24 17:05:10

2009-06-25 13:03:48

JSF的UI组件

2009-06-24 13:06:41

JSF组件Facelets

2009-06-22 13:27:01

JSF组件模型

2009-06-29 14:30:27

JSF技术

2009-06-26 10:54:24

JSF技术

2009-06-17 15:18:38

JSF与Spring

2009-06-22 13:41:58

FaceletsJSF组件

2009-06-24 14:59:00

图形bean组件JSF图形组件

2016-12-22 13:32:04

服务化框架JSF解密

2009-06-26 13:20:50

JSF和Ajax

2009-06-26 17:36:10

FaceletsJSF

2009-06-24 16:30:21

JSF组件模型

2009-06-11 11:22:40

JSFJSPJSF的UI组件

2011-07-08 17:26:38

JSFStruts

2009-06-24 15:44:59

JSF的加减法Seam

2009-06-23 17:54:41

OSGi与JSF

2009-06-24 15:13:36

自定义JSF组件

2009-07-06 17:57:22

JSF表格组件

2010-06-09 09:15:58

JSF 2Ajax组件
点赞
收藏

51CTO技术栈公众号