本文是小弟的技术文章处女作,由于个人水平和文字表达能力等原因,错误及不妥之处还望各位同行指点,我的主要目的是把自己的研究心得拿出来分享并使自己有一个总结的过程,高手们见笑了。
Buffalo是一个贯穿前后端的比较完整的Ajax框架,Buffalo最有价值之处,个人感觉有两点:
1、 后端实现了较为完整的基于xml的xml<->object序列化反序列化协议;
2、 前端提供了适配协议的调用封装和响应解析机制,并基于回调机制提供编码API。
这里先给大家详细介绍 buffalo2.0 中JAVA端如何根据 js 提交的请求XML报文来调用最合适的方法。先来看看JS通过buffalo
异步调用java方法的请求格式,比如我要调用 TestSum 类的 sum(double a,double b) 方法,比如我要调用 TestSum 类的 sum(double a,double b) 方法,参数值为1,2,那么在js中的写法是:
buffalo.remoteCall("TestSum.sum",[1,2], function(reply) { // 回调函数,这里buffalo是一个Buffalo对象 }
那么经过buffall.js 处理后的格式为:
1. url: contextPath/buffalo/TestSum ,其中 contenPath是工程路径,buffalo是一个Servlet,作用类似struts中的
ActionSerlvet,而 TestSum 就是类名,其实这只是一个 key ,buffalo 会根据 TestSum 这个 key 到配置文件