所以,jsf的数据组件让我一见钟情。数据组件实际上包括两个组件,一个是uidata,一个是uicolumn。jsf将数据表看成是由若干个列组成的一个表格,而行的数目取决于数据源中数据的条数。这与powerbuilder的数据窗口殊途同归。当然,数据组件不是直接从数据库中取得数据(实际上,设计模式也不允许程序员这样做),而是通过一个javabean以resultset的形式传递给数据组件。在jsp中,这样的程序逻辑够我折腾一阵的了,而在jsf中,这与生成一个文本输入框一样容易。 【相关文章:宝德双路双核服务器PR1310D简介】
这个习惯一直保持到今天,几乎成了我的嗜好,前面提到的126张表,就是最好的例子,换成别的程序员,也许30张表就够了。 【扩展阅读:曙光推出AMD双核服务器新品】
jsf的事件与生命周期 【扩展信息:山东浪潮发布双核服务器】
jsf数据组件的用途并不限于显示数据库表的内容,实际上,所有实现了list接口的对象都可以成为数据组件的数据源,这给java的web编程带来了极大的便利。而且,如果你想直接编辑数据表中的数据,jsf也可以做到,只需以可读可写的方式,将uicolumn的value属性与数据源中你想修改的属性绑定在一起,用户在网页上所做的修改,就会自动保存到数据源中。这样的功能,在jsp中,程序员都要深吸一口气才敢动手的。我的第一个jsf程序,之所以能在一个月的时间内完成346个页面,数据组件功不可没。
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来编程。... 下一页