基于AJAX和JSF打造丰富的互联网组件之Mabon篇(1)(3)
如果你计划把Mabon应用于你的支持AJAX技术的组件中,那么你应该知道使用你的JSF组件库的应用程序开发者还要再加上一步。应用程序开发者需要把显示在下面列表1中的入口添加到Web应用程序配置文件web.xml中。
列表1:Mabon Servlet配置
|
|
servlet类
net.java.dev.mabon.webapp.Faces-LifecycleServlet和初始化参数(例如,net.java.dev.mabon)是Mabon合同的一部分。应用程序开发者可以选择把该映射设置成默认定义一样的URL模式(例如/mabon/*)或重载缺省的URL映射,以防它与Web应用程序使用的资源发生冲突。Mabon自动地消费这个URL映射改变而不用要求任何代码修改。
十五、Mabon JavaScript API
Mabon工程提供了一种方便的JavaScript库―你可以使用它来把你的请求发送到服务器端。Mabon send()函数利用Dojo toolkit的bind()函数以与服务器异步地通讯。有关于Dojo开发工具包的更多信息,请访问Dojo网站(http://dojotoolkit.org/)。
列表2展示了Mabon JavaScript库的源码。
Mabon send()函数只使用一个参数:一个Map。为了从你的AJAX实现中调用mabon.send()函数,你必须使用JavaScript Map语法来构造Map,详见下面的代码:
|
targetURL是资源URL―它被写向客户端(例如
/context-root/mabon-servlet-mapping/managedBean.methodName)。targetURL将被FacesLifecycleServlet所拦截并且将被Mabon “Apply Request Values”阶段所译解。
十六、Mabon协议
现在,既然你已经知道如何配置Mabon,那么我们开始分析你如何引用需要的托管bean来取数据。类似Mabon协议的语法很容易理解。该语法以mabon:/开始,后面跟着托管bean名字,最后是方法名,参考如下:
ViewHandler.getResourceURL(context, "mabon:/
这里的语法中使用了一个前缀来指示,这是一个Mabon托管的请求,托管bean的名字和需要的方法。这个由Mabon合同所定义的语法(mabon:/
十七、小结
本文讨论了怎样使用AJAX来取数据并且利用JSF管理的bean工具作为一种数据源,还讨论了不同的XMLHttpRequest响应类型―responseText和responseXML―你可以使用它们来把结果返回到服务器端。我们还向你展示了如何有效地使用eval()函数来分析JSON语法响应。
此外,在本文中,我们还讨论了一种新的开源工程Mabon―它扩展JSF来提供一个定制的生命周期―它远程地调用一个托管的bean方法,然后使用JSON请求把结果传送到客户端。
在本系列的下一篇文章中,我们将分析如何综合前面三篇中的知识来创建一个利用AJAX,Mabon和Weblets技术的组件






