国产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>bfappservlet-name>
    <servlet-class>net.buffalo.web.servlet.ApplicationServletservlet-class>
servlet>
<servlet-mapping>
    <servlet-name>bfappservlet-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()">Testbutton>

前端的测试脚本如下:

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,说明部署成功。


搞定!


你可能感兴趣的:(java)