準備工做:
官網下載buffalo-2.0-bin,也能夠下載buffalo-2.0-src
下載地址:http://sourceforge.net/project/showfiles.php?group_id=178867javascript
1、純buffalo實現ajax異步調用
1.buffalo-2.0.jar
直接在buffalo-2.0-bin裏,把它添加到WEB服務中lib。php
2.buffalo.js和prototype.js
a.兩個文件放到Web應用程序的/WebRoot/js/目錄下。
b.[buffalo.js]文件在buffalo-2.0-bin目錄中獲取。
c.[prototype.js]文件在buffalo-demo.war包中獲取。html
3.web.xml中添加buffalo核心處理類的配置java
<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>
4.新建一個java示例類,此處命名爲:MyBuffalo.javaweb
package my.buffalo; public class MyBuffalo { public String getMyBuffalo(String name) { return "Hi, " + name + " , Welcome to MyBuffalo !"; } }
5.在源文件夾src下新建一個屬性文件,命名爲:buffalo-service.properties,
此文件編譯後位於WEB-INF/classes/目錄下,buffalo框架是經過此文件來查找遠程調用的類的。ajax
#若是web工程也使用buffalo整合spring的配置方式[BuffaloServiceConfigurer]
#此文件中myBuffalo在Spring配置文件也存在,此時存在訪問優先級,優先讀取Spring的myBuffalo進行遠程調用,找不到纔會讀取此文件中的myBuffalo
myBuffalo = my.buffalo.MyBuffalo
6.index.jsp文件--測試入口spring
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Buffalo--最佳實踐</title> <script language="JavaScript" src="js/prototype.js"></script> <script language="JavaScript" src="js/buffalo.js"></script> <script type="text/javascript"> var endPoint = "${pageContext.request.contextPath}/bfapp"; var buffalo = new Buffalo(endPoint); //第一個參數是調用業務的方法,第二個是參數列表,用[]括起來,第三個是回調接口, //須要調用的均可以寫在這個函數中 function foo(name) { buffalo.remoteCall("myBuffalo.getMyBuffalo", [name.value], function(reply) { alert(reply.getResult()); }) } </script> </head> <body> UserName :<input type="text" name="myname" id="myNameId"> <!-- 此處的$('myNameId')中的myNameId推薦使用id屬性,而不是name屬性,不少瀏覽器都不支持name屬性獲取值的方式 --> <input type="button" value="Buffalo-Enter" onclick="foo($('myNameId'));"><br> </body> </html>
7.啓動web服務,在browser地址輸入http://ip:port/projectName, 測試結果:瀏覽器
2、buffalo整合spring框架實現ajax異步調用
Notes:此方式與純buffalo實現ajax異步調用區別,簡單來講就是將buffalo-service.properties內容交給spring來管理。app
實現步驟僅須要在「純buffalo實現ajax異步調用」基礎上,增長兩個核心參數配置便可。
一、第一個核心參數,在web.xml增長spring的核心監聽器ContextLoaderListener框架
<!-- Spring加載的配置文件,主要經過ContextLoader中的CONFIG_LOCATION_PARAM = "contextConfigLocation" --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:kernel.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener>
二、第二個核心參數,在kernel.xml增長buffalo的核心管理器BuffaloServiceConfigurer
<bean class="my.buffalo.MyBuffalo" name="myBuffalo"></bean> <!-- Buffalo的業務配置,須要用到的業務核心類都在此處配置 --> <bean id="buffaloServiceBean" class="net.buffalo.service.BuffaloServiceConfigurer"> <property name="services"> <map> <entry key="myBuffalo" value-ref="myBuffalo"></entry> </map> </property> </bean>
三、測試方式使用index.jsp, 結果和純buffalo實現方式的結果一致!