Buffalo最佳實踐

本文將介紹Buffalo AJAX的兩種配置的最佳實踐,這個AJAX框架仍是中國大師開發的,用起來估計是最方便、最簡單的一個

準備工做:
官網下載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實現方式的結果一致!

相關文章
相關標籤/搜索