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: