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

文章作者 100test 发表时间 2007:09:06 11:51:00
来源 100Test.Com百考试题网


  搞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的开发带来良好的支持,包括:语法加亮、代码辅助、断点调试、可视化的设计等等。



相关文章


谈Sun关于Java的开放源代码策略
JSF:Java中面向Web开发的生旦净末丑
JSF“裸体”降临JavaWeb世界
在咖啡里加糖论Java世界的Ruby
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛