傻人的傻福
从jsp起步,第二级台阶,也许struts是最合适的。没有复杂的概念,没有深奥的理论,容易理解,上手快,从jsp向struts的过渡显得特别自然。这是struts流行的原因之一。如果当时请教过任何一个java高手,我十有八九会以struts作为我的jsp替代技术,并且很有可能成为struts的发烧友。可是,机缘巧合,我选择了jsf。 【相关文章:宝德双路双核服务器PR1310D简介】
记得华为总裁任正非说过,华为是因为无知才走上通信产业之路的。我在2004年年中开始接触jsf时,也是因为无知。几乎没有java经验,web更是一片空白,写了一个半吊子的jsp程序后,我居然判了jsp的死刑,铁下心来钻研我的jsf去了。无知者无畏,说得一点也不错。 【扩展阅读:曙光推出AMD双核服务器新品】
首先,在jsf中,页面干净了许多。无需声明javabean,也不用嵌入scriptlet,没有多余的符号,只是一些扩展标签而已,看上去规范而不失优雅,让人赏心悦目。程序员多半是完美主义者,眼睛里容不得丑陋的代码,我认识的一些程序员,平时不修边幅,可以整个冬天都穿同一件夹克,袖口磨得油光发亮,但他们的程序却整洁得让人嫉妒。 【扩展信息:山东浪潮发布双核服务器】
正应了那句俗语:“傻人有傻福。”采用jsf技术后,web编程如有神助,一个月时间,我与一个刚毕业的程序员写出了一个规模不小的web程序:126张数据库表,346个jsp页面,458k java源程序,还包括84页的«需求规格说明书»与189页的«数据库设计说明书»。即便是桌面应用,这样规模的程序在一个月内完成,老板也该偷着笑了。其实,效率的提高,完全是jsf的功劳。正如sun在jsf的规范中所宣称的那样,jsf极大地简化了java的 web编程。
其次,jsp中趾高气扬的request与response对象淡出了jsf。在典型的jsf应用中,程序员基本上没有直接操作request与response对象的必要,因为框架隐藏了对这两个对象的处理细节。不论是从request中解码参数,还是将数据编码到reponse中,都不需要程序员写任何代码,jsf知道该怎么做。当然,如果非要访问request,jsf的隐含对象为程序员提供了可能。
jsf的ui组件
ui组件是jsf最具特色的组成部分。与桌面程序的ui组件不同的是,jsf的ui组件是服务器端的,但是,在jsf框架的支撑下,这些服务器端的ui组件,在程序员看来与桌面程序的ui组件没什么不同。我用的jbuilder版本不支持jsf页面设计的所见即所得,当我拖动一个ui组件到页面上时,jbuilder为我生成的,是一段标签文本,跟随着我的鼠标,放在指定的位置。一个服务端ui组件就是这样诞生的,其在页面上的表现形式也随之确定。
没有所见即所得当然有点遗憾,但对我来说,这已经足够了,因为把组件的value与后台javabean的属性进行简单的绑定,我就得到了所有需要的程序行为。页面显示与后台数据的同步、用户输入的转换、数据的有效性验证、错误信息的提示以及ui组件状态的保存与恢复,所有这一切不需要我写任何代码,jsf已经代劳了。
jsf的另一个特色是它的数据组件。我曾经很长时间使用powerbuilder开发程序,熟悉powerbuilder的程序员都知道,powerbuilder最引人注目的是它的所谓数据窗口。并不好看的界面,笨拙的ide,powerbuilder单单凭借一个数据窗口,就吸引了大批程序员。... 下一页