服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 核心技术 > 查看文档

对比jsf在eclipse和netbeans应用

  最近eclipse发布了eclipse europa版本,对于很多人来说europa是带着众多人的期待,我也很想知道europa是否支持jsf应用程序。因些我在安装和对jsf支持方面对eclipse 3.3 和netbeans 6.0m10进行了一下比较

  安装方面

  安装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的时候才有)。

扫描关注微信公众号