学习JSF的生命周期

开发 后端
本文介绍了JSF的生命周期。JSF生命周期对于初学者来说往往是一个大障碍。笔者认为在学习JSF的过程中,应该把生命周期放在最后部分。

OO中的事件,是对象通信的一种机制,对象通过响应彼此的事件相互协调一致。JSP没有事件,所以JSP的代码需要程序员自己去协调,什么时候执行什么代码,往往让程序员大费周章。如果说JSP代码是一群孩子的话,那么程序员就是这群孩子可怜的父母,吃喝拉撒全要操心,哪里能够集中精力做点事情!所以,小孩要上学,学知识可能只是一个借口,父母想找个老师代管,才是背后真正的原因。

JSF就是程序员们所要寻找的老师,把代码片断交给JSF去管理,程序员就可以集中精力编写业务逻辑了。在JSF里,有四类事件。值改变事件,当用户在输入框中输入数据后发生;动作事件,当用户提交Form时发生;数据模型事件,当数据表的某行被选中时发生;生命周期事件,当生命周期从一个阶段进入另一个阶段时发生。除了生命周期事件,其他事件都是桌面程序中大家所熟知的,而生命周期事件可以想象成窗口事件,例如窗口的生成、关闭、激活等等。

谈到JSF,就不能不谈谈JSF请求处理的生命周期。为什么很多人觉得JSF难学?都是生命周期惹的祸。JSP的生命周期只有一个阶段,而JSF却有6个阶段!为什么要这样呢?其实,这是JSF框架所必需的。JSF只有细分生命周期阶段,才能对Request和Response施加粒度足够细的控制,因为JSP那样粗粒度的控制,不足以支撑UI组件模型和事件模式。 

在我初学JSF时,生命周期成了我最大的障碍。不管我如何咬文嚼字地推敲JSF规范中关于生命周期的描述,我都无法弄明白到底专家们在说什么。甚至直到我完成了我的首个JSF程序的开发,我还是不懂。这让我十分的惴惴不安,时时担心自己误入歧途。奇怪的是,不论是Sun的Tutorial,还是JSF的官方规范都把生命周期放在“头版头条”的位置,一开篇就大肆推销生命周期概念,生命周期真的那么重要吗?

这绝对是一个错误!生命周期是JSF的核心,但不是程序员的必修课,初涉JSF的程序员,根本没有必要浪费精力在生命周期晦涩的概念里纠缠,不懂生命周期,照样可以用JSF来编程。花很少的时间看看各个UI组件的功能和属性,然后弄明白各类事件的含义以及应该如何响应这些事件,了解一下JSF可配置的页面导航机制,再搞清楚Managed Bean是什么东西,马上就可以动手编写你的第一个JSF程序了!

生命周期当然重要,不理解生命周期是难以在JSF中深入下去的。但是,如果有机会让我来写JSF的入门教程的话,我会把生命周期放在最后一章,等大家都有了JSF的实践经验,对JSF是如何简化Java的Web编程有了感性的认识,再来深入剖析JSF的生命周期,才能水到渠成,一点就通。

【编辑推荐】

  1. JSF2.0通过最终投票 JSF已经实现所有特性
  2. JSF进行Web开发的三大优势
  3. 新一代Java Web开发框架JSF访谈实录
  4. 细说框架风云 JSF能否拯救WEB江湖
  5. 简谈JSF与Struts的功能比较
责任编辑:yangsai 来源: 百度空间
相关推荐

2009-06-24 10:47:55

JSF生命周期

2009-06-24 10:34:39

JSF生命周期JSF应用程序

2009-06-23 18:11:02

JSF的生命周期Ajax处理

2021-02-14 00:39:57

机器学习技术人工智能

2015-07-08 16:28:23

weak生命周期

2022-04-19 07:20:24

软件开发安全生命周期SSDLC应用安全

2010-07-28 12:47:06

Flex组件

2010-07-14 10:48:37

Perl线程

2023-02-15 16:25:06

机器学习人工智能数据

2009-06-18 13:32:39

Java线程生命周期

2012-04-28 13:23:12

Java生命周期

2011-06-16 09:31:21

ActivityAndroid

2011-08-15 16:09:44

Cocoa对象Objective-C

2019-10-16 10:50:13

Linux内核测试

2009-06-17 15:06:50

Hibernate实体

2013-07-29 05:11:38

iOS开发iOS开发学习类的'生命周期'

2012-01-16 09:00:56

线程

2013-08-19 17:03:00

.Net生命周期对象

2012-06-20 10:29:16

敏捷开发

2021-07-19 05:52:29

网络生命周期网络框架
点赞
收藏

51CTO技术栈公众号