`
mixer_a
  • 浏览: 342249 次
社区版块
存档分类
最新评论

JavaEE学习笔记之JSF(一)

 
阅读更多

一、JSF

古时候有一句话:知其然知其所以然。意思就是知道事物的表面现象,也知道事物的本质及其产生的原因。

那么,JSF在表面上以及本质上是什么东西呢?为什么会有JSF呢?

个人认为JSF(JavaServer Faces)从名字上来看,是一种Java服务Face的集合,不知道Face翻译成什么比较好,但是大概要表达的意思应该是一种用于与客户端交互的页面。在学习JSP与Servlet的时候,已经学过了,JSP主要的作用就是与客户端交互的,为什么还要用JSF?这也真是JSF出现的原因。

JSF是基于Java的Web应用程序的服务器端用户接口(UI)组件框架,它提供了一种以组件为中心来开发JavaWeb用户界面的方法,从而简化开发。更重要的是JSF将MVC模型继承到它的体系结构中,确保了程序的可维护性。

二、UI组件、JSTL以及EL表达式

刚刚已经提到JSF是以组件为中心进行开发的,所以在JSF中必定会存在与组件有关的技术。JSF定义了一组UI组件,以及一组标准的API。所以的UI组件都可以直接在页面里使用,而且组件几乎都是HTML form系列标记的翻版

JSTL(JavaServer Pages Standard Tag Library)是包括了很多JSP公用的核心功能。取代了在JSP应用中融合种类分多的标签,JSTL使用一种单一的标准的标签集合。

JSTL包括循环标签、流程控制标签、操作XML标签、格式化标签、使用SQL的标签和函数标签。

在JSF页面中,主要使用到的标签库是

EL表达式是一种特殊的表达式,分为两种:E表达式和L表达式。E表达式是即时表达式,即时表达式意味着页面在第一次调用时,JSP引擎就会计算表达式的值并立即返回结果。L表达式是延迟表达式,意味着不管是否合适,该表达式只能在页面的生命周期以后使用自己的机制计算表达式的值。

关于表达式的计算和赋值,在JSF底层,使用的反射技术实现的。

三、JSFDemo

该例子实现的功能是通过登录页面登录系统,如果登录成功,跳转到登录成功页面,否则跳转到登录失败页面。使用的服务器是JBoss服务器。

login.jsp

其中

是使用JSTL标签库。
第一个是HTML的工具标签(因为组件几乎都是HTML form系列标记的翻版),第二个是核心标签库。

使用的是EL表达式中的延迟表达式,因为只有当输入过之后,提交的时候,在利用反射技术,为user实例赋值。并不是立即计算的。

failure.jsp

success.jsp

faces-config.xml

该配置文件中定义了托管Bean以及Bean的属性,还有就是导航规则,JSF架构会根据该配置文对整个程序件进行管理。

web.xml

该配置文件主要是在客户端访问的时候,web服务器会根据该文件找到相关资源并调用。
User.java


个人总结:JSF最重要的是faces-config.xml文件。如果该文件中的内容搞清了,那么整个流程就会很清楚,学起来也会很容易,使用起来也会得心应手。

转载请注明出处:http://blog.csdn.net/ljp2009012843/article/details/7593199

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics