google web toolkit (gwt) 吸引了一些开发者的注意.因为使用它你可以很容易的添加ajax web 2.0功能到你的程序中. gwt的设计师努力隔绝用户与javascript打交道.你只要使用gwt就可以了,不需要知道如何使用js. gwt 通过从java代码来产生js代码的\方式 实现了创建高级客户端js小组件(client-side javascript widgets)的任务.
与此同时, javaserver faces (jsf)聚集了愈来愈多的成为通用服务端web框架的要素.jsf成功的主要原因是:自顶向下的基于组件的方式来开发web程序. 同时jsf带有自己标准的随时可用(out-of-the-box)的ui组件 , 它被设计为简单的包含其他组件库(it is designed for the easy inclusion of other component libraries).
g4jsf 已经成为ajax4jsf开源项目的一个子项目了 (https://ajax4sf.dev.java.net) ,有它来产生这种集成库. 【相关文章:三大协议NetBEUI和 IPX/SPX】
然而,这两项技术是不可思议的使他们自己获益,他们两个相互结合的非常好(相互互补). gwt 不知道服务端的状态( server-side-agnostic),然而 jsf’s基于组件的结构可以很容易的适应任何组件的渲染.在这篇文章中,我们将讨论 (首先通过一个step-by-step 的例子)一个促进这两个技术互补的新框架. 【扩展阅读:RIP、IGRP和EIGRP的区别是什么】
关于g4jsf 【扩展信息:基于SIP的VoIP在下一代网络中的应用】
gwt与jsf之间看起来是相互竞争的技术,而使用g4jsf则看起来是很自然的互补技术.而g4jsf的任务就是使这种互补关系的技术看起来更自然一些.
库文件包含两个部分:
g4jsf组件开发包( component developer kit)包含 项目骨架产生器. 一个 run-time library 提供在gwt widgets与jsf环境之间的过渡作用.g4jsf 注意了jsf 与 gwt 两种技术的发展过程\.对于 gwt, widgets仍然在主机模型中开发,并且在使用 google browser来调试. gwt 项目结构包含 /client, /public, 与 /server 包, 并且还在继续维护.
g4jsf 组件开发包(g4jsf cdk)产生的组件包含两个部分.一是 包含客户端行为的gwt widget .二是负责 gwt widget 与 jsf 环境之间的通信问题.
g4jsf cdk 使用facelets方式来写jsf组件. 它比不同的jsp方式要简单, 使用普通的方式要创建一个tld文件与一个tag类.使用facelets的方式是相当直接的.
示例程序
在这篇文章中,我们将一步一步的通过一个简单的"hello, world" 例子来讲述g4jsf的主要功能.我们也创建一个实际的例子,a4j-gwtdemo. 在这里 http://livedemo.exadel.com/a4j-gwtdemo/ 可以看到该例子.
你可以从ajax4jsf示例页面上下载到示例的源代码与war部署文件 .该https://ajax4jsf.dev.java.net/nonav/ajax/ajax-jsf/download.html#examples 文章描述的最终示例版本在哪里也可以下载到.
... 下一页