国产J2EE轻量级AJAX框架 Buffalo(布法罗)

摘要
这次要介绍的是一个国产AJAX框架,是一个支持Java对象到JavaScript对象的双向序列化的框架,并且最新版提供了对Spring的支持,目前最新为2.0版本,可惜已经不再更新了。


Buffalo简介:

java端任意一个方法调用产生的结果,都可以被透明的序列化到javascript端,无论是这个对象多么复杂;无论是简单的原子类型(String, int, long, boolean)还是复杂的对象(List, Map),甚至你自己定义的业务对象,buffalo可以完整的将其序列化到javascript端,reply.getResult()会从聪明的判断服务器端远程调用的结果类型。

如:java的arrayList对应js的array,java的bean类对应js的json。

客户端调用方式:

// 这里/web代表java web工程名称
// /bfapp是在web.xml里定义的servlet
var END_POINT="/web/bfapp";
//后面的false代表同步,true代表异步
//一般可不写,默认为异步
var buffalo = new Buffalo(END_POINT, false);

buffalo.remoteCall("demo.queryBlogArticle", [], function(reply){
    alert(reply.getResult()); 
});

首先下载buffalo的js库和jar包,点击下载


1、部署后端环境

buffalo-demo\WEB-INF\lib下的commons-logging-api-1.0.4.jar和压缩包下的buffalo-2.0.jar两个包部署到java web项目下。

然后在web.xml下添加以下servlet

<servlet>
    <servlet-name>bfapp</servlet-name>
    <servlet-class>net.buffalo.web.servlet.ApplicationServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>bfapp</servlet-name>
    <url-pattern>/bfapp/*</url-pattern>
</servlet-mapping>

2、创建remoteCall映射文件

java web src 或者 WEB-INF/classes下创建文件buffalo-service.properties,里面的映射格式如下:

# Example Service
# 左边为remoteCall的url,右边为工程下类文件的包名
helloService=example.HelloService

后端java类为:

package example;
public class HelloService {
    public String hello(String name) {
        try {
            // to see the loading status
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        return "Hello, " + name;
    }
}

3、前端部署

buffalo-demo\script下的prototype.js, buffalo.js添加到前端页面里,如下:

//切记,prototype要放在buffalo上面
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/buffalo.js"></script>

前端按钮:

<button onclick="test()">Test</button>

前端的测试脚本如下:

function test(){    
    var END_POINT="<%=request.getContextPath()%>/bfapp";
    //或者定义END_POINT为如下:其中web为Java web工程名称
    //var END_POINT="/web/bfapp";
    var buffalo = new Buffalo(END_POINT);

    buffalo.remoteCall("helloService.hello",["husen"], function(reply) {
        alert(reply.getResult());
    });
}

4、测试

点击test按钮,返回 Hello husen,说明部署成功。


搞定!


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值