zoukankan      html  css  js  c++  java
  • Buffalo最佳实践

    本文将介绍Buffalo AJAX的两种配置的最佳实践,这个AJAX框架还是中国大师开发的,用起来估计是最方便、最简单的一个

    准备工作:
    官网下载buffalo-2.0-bin,也可以下载buffalo-2.0-src
    下载地址:http://sourceforge.net/project/showfiles.php?group_id=178867

    一、纯buffalo实现ajax异步调用
    1.buffalo-2.0.jar
    直接在buffalo-2.0-bin里,把它添加到WEB服务中lib。

    2.buffalo.js和prototype.js
    a.两个文件放到Web应用程序的/WebRoot/js/目录下。
    b.[buffalo.js]文件在buffalo-2.0-bin目录中获取。
    c.[prototype.js]文件在buffalo-demo.war包中获取。

    3.web.xml中添加buffalo核心处理类的配置

    <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.java

    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框架是通过此文件来查找远程调用的类的。

    #如果web工程也使用buffalo整合spring的配置方式[BuffaloServiceConfigurer]
    #此文件中myBuffalo在Spring配置文件也存在,此时存在访问优先级,优先读取Spring的myBuffalo进行远程调用,找不到才会读取此文件中的myBuffalo
    myBuffalo = my.buffalo.MyBuffalo

    6.index.jsp文件--测试入口

    <%@ 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, 测试结果:

    二、buffalo整合spring框架实现ajax异步调用
    Notes:此方式与纯buffalo实现ajax异步调用区别,简单来说就是将buffalo-service.properties内容交给spring来管理。

    实现步骤仅需要在“纯buffalo实现ajax异步调用”基础上,增加两个核心参数配置即可。
    1、第一个核心参数,在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>

    2、第二个核心参数,在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>

    3、测试方式使用index.jsp, 结果和纯buffalo实现方式的结果一致!

  • 相关阅读:
    Oracle存储过程和自定义函数笔记
    怎样将一个Long类型的数据转换成字节数组
    Java集合框架整理
    有了这些,java IO就不愁了
    java生成Excel文件,下载
    ajax使用
    java transient关键字
    Mysql乐观锁与悲观锁
    Spring(六)Spring执行流程
    Spring(五)AOP
  • 原文地址:https://www.cnblogs.com/maven-chao/p/5245208.html
Copyright © 2011-2022 走看看