1.引子:我与jsf的第一次亲密接触
因此,当接到第二版的开发任务时,我毫不犹豫地放弃了jsp,寻找一种替代技术。上网一搜,却发现框架多如牛毛,评论文章各执一词,莫衷一是,让我彻底迷失了。犹豫摇摆不定之际,sun的j2ee tutorial文档中关于java server faces技术的介绍吸引了我:ui、component、event、listener这些在桌面程序中熟悉的字眼,让我在web开发中找到了桌面程序员的一些感觉。 【相关文章:光华发布新版免费杀毒软件 支持Vista】
2004年3月,当我着手开发我的第一个web程序时,我选择了jsp。作为一个传统的桌面程序员,而且是老程序员,向web程序员的转变是异常痛苦的。3个月的时间,程序总算完成了,但从此对jsp恨之入骨。凌乱的书写格式,数据与界面的混杂,尤其是嵌入到页面里的scriptlet,让我搞不清自己是编程序的还是写网页的。 【扩展阅读:盖茨:最爱Vista桌面搜索 免费软件很】
事实上,到现在为止,我对于jsf还只能说是初步了解,远未达到掌握,更谈不上精通,但这并不妨碍我视jsf为web开发的首选框架。尤其是对于新手,如果还没有在struts、tiles、spring、tapestry等框架中走得太远,那么,集中你有限的精力踏上jsf之路吧。 【扩展信息:利用微软Atlas消费外部Web服务(1】
象开发桌面程序那样开发web程序,这是我选择jsf的初衷。基于这样肤浅的认识,跌跌撞撞上路了,在工期与新技术的双重压力之下,超负荷的工作令人透不过气来,但每每从jsf中发掘出令人惊喜的新特性,又给我带来极大的满足感。第二版终于完成时,日历恰好翻过一个整月。jsf带来的效率提升是显著的。
2.jsf优势之一:ui组件(ui-component)
ui组件(ui-component)一直是桌面程序的专利,web程序中,虽然html定义了基本的ui标签,但要使这些ui标签像ui组件那样工作,还需要很多代码片断来处理数据及其表现形式,而且有效地组织这些代码片断使其协调一致也是一件繁琐的工作。jsf的ui组件是真正意义上的ui组件,能极大地简化程序员的工作,例如,在页面上放置一个文本输入框,这个输入框立即具备了数据填充、界面更新、事件侦听、动作触发、有效性检查与类型转换的功能。更为重要的是,程序员只需根据业务逻辑编写核心业务代码,jsf会保证代码在合适的时候被执行,完全不用考虑代码与代码之间该如何来配合。
3.jsf优势之二:事件驱动模式
事件是面向对象方法的重要组成部分,对象之间通过事件进行沟通与交流,使得一个或多个对象能够对另一个对象的行为作出响应,共同合作去完成一项业务逻辑。... 下一页