本文并非JSF的使用说明,而是向诸位Java同道强力推荐JSF,以增强众位对Java的信心。
关于JSF的具体资料请到官方网站http://java.sun.com/j2ee/javaserverfaces/查阅下载,另外推荐OReilly的书籍JavaServer.Faces.eBook-DDU.chm。
不知各位Java同道有没有用过JSF。
这项技术是由Craig McClanahan为主设计的,而Craig McClanahan正是如日中天的Struts的主设计师(Java人都知道),故JSF大体上与Struts一脉相承。以笔者初试的体验,Struts是典型的framework,侧重架构设计,而JSF则侧重于jsp的快速开发功能,这可是很重要的喔!
高手们也许对此不大以为然,但不要忘了,以国内当前的技术水平,真正算得上Java高手的,也许10人中都难寻一位,而在中小型开发占统治地位的国内软件市场,目前大多数的开发其实用JSP+JavaBean+JDBC往往才是获取较高收益的快速解决方案,这也正是中国当前的社会经济与技术条件所决定的。所以对于大多数开发者与小型软件公司来说,把WEB层的问题解决好是要害的。
笔者曾经在J2EE与.NET的选择中反复徘徊(相信众位同道过去、现在及将来都会有如此经历),而前些年网络上的争论也是热火朝天,以至于在火药味散去后了无声息。关于那些深层次的优劣问题,高手们自有见解,笔者由于水平有限不便多论。以自身的学习经验而论,学习Java最大的好处就是能接触到更多、更深、更原味的OOP知识。笔者过去也曾长时间学习使用RAD,如Delphi、PB、VB等,RAD正是OOP的巨大成果,在诸位感受到其无尽的好处之时却也在很大程度上失去了“知其所以然”的机会,这样的不良后果是:代码杂乱,难以复用。上手的轻易也导致新手与高手之间的在实际开发中区别不大,从某种程度上扼杀了程序员的资深化。各位只要看一看如James Gosling这样的大师经过了多少年的积累,就可以了解“冰冻三尺,非一日之寒”的道理了。所以,从学习、积累的角度而论,建议诸位从Java学起。可惜世上没有完美的事物,Java学是能学到更多,可惜在中小型开发中的开发速度是无法与.NET相比的,尤其是WEB层的JSP,与Asp.Net相比,那真是...。所以,Java的WEB层技术一直是饱受批评的,甚至可以说,由于WEB层开发的劣势,导致了大批入门者放弃了Java而选择了.NET(笔者就曾转投过两三年月)。甚至高手们出于生产力上的考虑,也被迫使用ASP.NET,这真是Java的一大致命伤。
于是,JSF终于姗姗来迟。客观上来说,JSF现在还不完善,暂时无法与ASP.NET比肩(据很多高手如是说)。有趣的是,JSF在很大程度上沿袭了ASP.NET的设计(对于习惯了RAD的程序员来说,web form是一件多么爽的事情!),并承接了struts的优点(架构化)。所以,从Java fans的理想上来说,JSF应该能够超越ASP.NET,既轻易开发,又有完善的架构。这一天何时到来呢,愿Craig McClanahan和他的小组们能早日完善这项重要的技术。尽管如此,假如你对JSP那乱麻麻的代码和老牛拉破车般的开发与调试感到万分沮丧,并开始痛恨J2EE的时候,或许JSF将使你看到一片曙光,重拾信心与希望。
以笔者经验,学习任何新技术,一开始的体验都很重要。初始的成功,即使就那么一点点,也足以产生信心与爱好,所以
推荐大家到www.exadel.com下载JSF Studio和文档、例程。照上面的JSFGettingStarted试着做一个小程序,J2EE的WEB开发原来也可以那么简单。一个字,爽!
(据说Sun自己的Sun Java Studio Creator也可做JSF,可惜笔者对Sun的IDE一向没有什么心得和爱好。在此还是大力推荐eclipse与JSF Studio的强力组合。