JSF:Java中面向Web开发的生旦净末丑

XuDTone 2010-06-05

 搞Java开发这么多年,说起J2EE Web开发,还真是百感交集、爱恨交加:

我爱J2EE服务器端编程带来的高可靠性、安全性和运行期的高效稳定性;

我恨以手工方式来编写JSP页面代码,我恨基于有限的HTML界面组件进行编程!

俺一向佩服的牛人袁红岗说得好:现状让人有时怀念VB、Delphi可视化编程的时代,有时甚至会羡慕微软的.net、Studio,因为它们的确使用起来很方便实用。

然而,Java世界所倡导的自由氛围“一切源于技术,一切源于开放”已进入我的血脉!我追求一种自由和完美的理想技术主义,希望Java中也能有一个功能强大的可视化工具!

我想,其实我和各位兄弟一样,要得很简单!

看了袁红岗关于“Ajax+JSF双剑合壁”的观点后,说实话我是比较赞赏的。倘若Apusic果真能实现他们的承诺,那J2EE的Web开发将发生渐进而深远的变化!!!

京剧脸谱大家都略有所知,分为生、旦、净、末、丑5种,那么,就以它为例吧:

“生”:容器级的Ajax支持

目前有JSF + Ajax这种思路的,恐怕也不是一家,但很多第三方的JSF + Ajax实现是提供一个组件库以及一个附加的Servlet 或Filter来处理Ajax请;而Apusic号称是直接由JSF容器来处理Ajax请求的,根据请求的类型来判断这是一个正常的HTTP请求还是一个 Ajax请求。Apusic JSF引擎号称实现了一个 AJAX Render Kit,可以在HTML文档中嵌入Java Script代码来实现Ajax特性,而替换Render Kit只需要修改配置文件即可。

“旦”:举重若轻的JSF引擎

常规JSF容器每进行一次客户端与服务器端的响应时,都需要把所有的状态传来传去,对系统运行性能带来较大的负面影响,而通过Apusic JSF号称的Ajax特性,能够只把发生变化的数据打包成Ajax请求发送给服务器端,而服务器端也只会将发生变化的数据打包成Ajax应答,从而大大提升系统的运行效率。并且,传统的JSF请求应答将刷新整个页面,而Apusic JSF号称将只更新发生变化的客户端组件,从而给客户带来更好的人机体验。

 “净”:让Web开发更轻松

以前要写Ajax应用要写很多Java Script代码,开发、调试、维护这些 Script脚本都相当烦琐,如采用Apusic JSF技术,就不再需要编写任何Java Script代码,引擎已经帮你生成了这些代码。Apusic JSF所有的标准组件都是支持Ajax的,某些第三方组件可能本身并不支持 Ajax,但使用一个名为的标签,可以立即将这个第三方组件转换成Ajax Enabled。

“末”:丰富的UI组件

据称Apusic JSF还提供了一个名为的标签,可以接受在发送和完成一个Ajax请求时触发的事件,缺省的实现是在发送 Ajax请求之前显示一个HTML片段,在完成Ajax请求之后显示另一个HTML片段,这些HTML片段可以包含文字和图片。此外还实现了一个 标签,可以以RPC方式调用服务器端Java对象的某个方法。

“丑”:随意拖曳的可视化设计

据Apusic开发部的人说,用Apusic JSF还包含其它一些差异特性,包括:控件的换肤功能,控件对IE、Mozilla(Firefox)、Opera等多浏览器的支持,以及强大的布局功能等。通过Apusic JSF,实现UI界面其实并不复杂,只需要通过简单的几行代码,就能够完成复杂的UI界面。

在JSF规范中,有这样一句话:“JSF is designed to be tooled”。换言之,JSF规范从设计初开始,就非常强调对工具支持的依赖。幸运的是,目前对JSF提供支持的开发工具也逐渐丰富了起来,包括Oracle JDeveloper、Sun Java Studio Creator等等。金蝶Apusic宣称也同样提供了一个基于Eclipse的集成式开发环境:Apusic Studio,并通过该工具,能够给JSF的开发带来良好的支持,包括:语法加亮、代码辅助、断点调试、可视化的设计等等。

总之:厂商靠产品说话。声势炒的这么大,Apusic到底有多少实力和老袁的一世英名就看这次了,呵呵。在中国作系统软件很不容易,希望Apusic的这个Java京剧脸谱能拿出点真东西。

相关推荐

jacky的部落 / 0评论 2009-12-22