安装方面 安装NetBeans是一件很轻易的事情。你可以选择基本(Basic)、标准(Standard)、完全(Full)三个版本中的任何一个下载安装。等待NetBeans和GlassFish成功安装后,我们就可以建立第一个JSF工程了。
安装Eclipse更加则轻易,到 Sun公司的网站下载“Eclipse IDE for java EE Developers”软件包。(我第一次下载的是"Eclipse IDE for Java Developers",希望这里面会有JSF选项,结果没有在插件治理器没有找到我想要的东西,而且其它对我也毫无用处……)
安装完Eclipse后,按照GlassFish网站上的安装向导,我装上GlassFish.不幸的是,你还不能完全使用JSF.你必须要安装一个JSF库才行。只需要下载javaee.jar和jsf-impl.jar两个包即可。 如下图所示:
装上GlassFish就已经成功了吗?答案是否定的,你还需要改变Eclipse的启动配置以获得更多的内存,否则你就会频繁收到下面这个报错信息:
添加JSF页面
大家可能会认为添加JSF页面很简单,并不是像写文章那么难,只是在工程中找到"pages"标签,点击"Add JSF page"就可以。可是很不幸,在Eclipse,你应该先添加一个jsp页面。如下图:
接下来,将会出现一个向导,出现的页面如下图所示:
根据在线帮助,你应该成功的建立了一个JSP页面。回顾一下,整个过程还是有点麻烦的。为什么没有直接一个"New JSF file"选项,难道是Eclipse讨厌JSF程序员吗?再看NetBeans,你一下子就看见了"Visual Web JSF Page"选项。但是这个选项是有问题的,一会在后面的说明中你就会知道。相反,你应该选择JSP.如下图所示:
接下来,你就获得了这么一个对话框:
问题再次出现了,这里没有JSF文件选项,没有提供一个JSF文件的模板。你就必须自己创建一个JSF文件,再把它粘贴到标签库中,或者粘贴到命名空间的声明中去。看来NetBeans是真正讨厌JSF程序员。
EL自动完成
假如要定义一个托管的bean作用在两个IDE上。在NetBeans中出现的麻烦事是:不能在对话框中为托管的bean设置EL名字。而在 Eclipse中出现的麻烦事是:当改变托管的bean的类名时它不能自动更新faces-config.当然,正如我们所预料的一样,两个IDE都能自动完成bean的命名和属性。
在Eclipse里面,使用faces-config编辑器来增加一个资源包,并且可以自动完成。NetBeans似乎看不到任何对资源包的支持。当手动的向faces-config.xml中添加资源包的时候,NetBeans仍然不能自动完成。在 NetBeans最终版本发布前,真的需要修改这个问题。如下图实例所示:
导航规则
Eclipse 和NetBeans的可视编辑器中都有导航规则。下面是Eclipse编辑器。看看右边的cheat sheet.假如没有这个,将不能在编辑器上工作,因为右键点击出现的是一些毫无用处的内容菜单。
可视页面的编辑
从可视化的页面编辑上Eclipse还是花费了一些时间的。你需要右键点击eXPlorer pane,接着选择"Web Page Editor".如下图所示:
你将看到一个编辑器,能够让你通过拖拽将一些组件到h:panelGrid或者h:dataTable中去。
我没有看到,也不知道如何在NetBeans中编辑一个现有的JSF文件。虽然有一个"Visual JSF Page",但是却不能用。在这种情况下,你可以去上下载Java Studio Creator作为你的编辑器。假如你很喜欢用Java Studio Creator,那么也是一件很好的事情。现在你可以将你在Java Studio Creator创建的页面放到你的Java工程项目中去。
但是,我并不喜欢用Java Studio Creator,原因有二:
它的窗口小部件设置看起来很不错,但是并不标准。我喜欢学习一种标准的窗口设置。你能想象出那将是一件多么坏的事情,假如每个Swing程序员不得不为每个工程项目去学习一种不同的组件设置。
我不得不被迫进入一种受限的设计模式,每个页面都得使用backing bean和binding.假如是VB程序员的话,或许能感觉好一些,但是对我于我来说,这不是JSF的精华所在。我喜欢在相关的页面共享一个bean.
我很反感Java Studio Creator中的代码和从别的地方往项目里添加JSF代码,这是不符合设计模式的。在NetBeans6.0m10作为一个里程碑,可视化编辑看样子似乎是限制对JSF页面的创建。
我不想往里面理添加第三方的插件,因为对JSF支持的很好的插件没有出现。
结论
Eclipse和NetBeans都支持基本JSF功能,非凡是JSF标签和EL表达式自动完成功能。对于说想引导JSF发展为目的来看,目前为止这两个IDE都不能使我满足;完成一些很常见的任务是那么的随意,不灵活,或者说不直观。就这一点来说,我更喜欢Eclipse,但是喜欢的程度并不是非常强烈,没有胜出NetBeans多少。为了获得更多关注和市场,NetBeans需要增加对资源包的支持,增加JSF页面时需要有一个向导(不仅仅在JSP的时候才有)。