有了合适的组件集,良好的“生态环境”的建立也是件较容易的事情。当使用的用户足够多时,良好的“生态环境”就开始建立了。对于JSF而言,这样的“生态环境”已经部分的建立了。除了组件供应商外,还有很多开发JSF的工具。如:JbossTools(或称Exadel Studio更适合)、BEA Workshop(Workshop与NitroX的M7产品的合并产物)、Oracle的Jdeveloper、MyEclipse、NetBeans、IBM的JSF工具及IDEA对JSF的支持。
关于JSF的开发工具大概就这些了。也许有人会说,开发JSF很大程度上依赖于这些开发工具。其实这样的说法并不公平。对初学者而言,这些IDE工具将帮助他们更容易学习JSF。许多的开发者常对初学Java人员建议,最理想的Java IDE是记事本(notepad)及命令行(cmd),那么有些人就由此推论,JSF最好的IDE应该也是记事本等简单的编辑器,而JSF专业的开发工具将让初学者“偷懒”,从而让他们对JSF的理解浮于表面。这常常使JSF初学者迷茫。
那是不是意味着要放弃使用JSF的IDE工具吗?当然不。因为我们不能由于工具能提供更加容易的开发过程而认为工具是有缺陷或框架是有缺陷的。
JSF的IDE并不能吸收大量的JSF用户,这也就说明了JSF的“生态环境”在引导JSF初学者方面发挥不够。“生态环境”代表着JSF的能力及威力。然而,它并不能向初学者展现它的核心思想,亦没有解释清楚初学者首先需了解的内容,同时没让初学者明白JSF框架所能提供而其它框架却不能提供的优点。
真正的问题是在于,JSF基于如此基础的组件,并不能直接为用户提供更有利的组件,除非用户自己再次开发基于JSF更好的组件。而用户在没有发现JSF的潜力之前,是难以开发更好的组件集的,同时,相关的文档于此也可能将无济于事。
组件开发者可以停止重复开发的车轮了。每个人都有一个tab面板、菜单组件、spinner、拖放机制。这些已经成熟了。对于更新更好的实现方式是欢迎的,但对“我也能”的实现方式,其实并不利于技术的传播。JSF所需要的,正是一个基于界面模型而开发的组件集,它将是界面的标准实现。关于此组件集的文档,当然也得简单明了,易于初学者学习与掌握。
JSF发展速度很快。前面所提及的书籍都是关于JSF的优秀资源。特别是Seam项目的书籍,更是关于JSF的快速入门书籍。JSF的优势在于它是一种标准,但仅仅是标准是不够的。因为并不能做人们所期望的事的标准,总有一天会被其它的标准所代替的。就笔者而言,JSF还并不胜任此标准,当然每位开发人员都会做出自己最终的决策。
不管怎么说,JSF总归是一种非常有潜力的组件框架。当然它也不是唯一的组件框架,本文的主题并非比较各种组件式框架。但好说歹说,JSF是J2EE的一部分,组件还在不断扩展和完善中,既然它是J2EE 5.0的实现标准,其潜力还是巨大的,它将像JSP一样,你可以只是比较淡漠的关心它,但JSF还是会向着它的方向进发,不管你喜欢与否。
JSF同其它的框架一样,是平等的。它成一种标准,意味着用户与实现者都有一个共同遵循的平台。如果JSF遵循共同的规范,则你可以想象JSF的运行机制。如果不是,则可以不用考虑它了。
JSF存在的问题是可以解决的,也正在被解决。已经出现了一些组件集,Facelets取代JSP,使得Web页面的模板化更加容易,将带来更快更简洁的性能。JSF2.0专家团的成立,将会把Java EE的简单模型带给JSF。同时,相关的文档将会更新与修订,同时将会有新书出版(不仅仅只是关注Jboss使用JSF开发的Seam项目)。当笔者在抱怨JSF的同时,作为开发人员,也在努力寻找解决问题的办法。如下是笔者的一些初步看法:
1. 使用facelets来代替JSP。
2. 尽量使用ADF或Seam,而少用或不用RI或myfaces。
3. 结合Spring来增强JSF的扩展性。
4. 别再抱怨JSF,毕竟它只是一个标准规范,而不是一种具体的实现框架。
【编辑推荐】