Buffalo之 bind,reply,ajax,view,form应用(三)

预览文章: Buffalo之 bind,reply,ajax,view,form应用(二)
http://liuzidong.iteye.com/blog/629898

 spring集成

 1 spring版本为:spring-1.2.3.jar

 web.xml配置代码  

 

   <context-param>

       <param-name>contextConfigLocation</param-name>

       <param-value>

           /WEB-INF/classes/applicationContext.xml

       </param-value>

    </context-param>

 

<servlet>

    <servlet-name>bfapp</servlet-name>    

<servlet-class>

net.buffalo.web.servlet.ApplicationServlet</servlet-class>

    <load-on-startup>2</load-on-startup>     

</servlet>   

 

<servlet>

       <servlet-name>context</servlet-name>

       <servlet-class>

org.springframework.web.context.ContextLoaderServlet

</servlet-class>

       <load-on-startup>1</load-on-startup>

</servlet>

 

<servlet-mapping>

       <servlet-name>bfapp</servlet-name>

       <url-pattern>/bfapp/*</url-pattern>

</servlet-mapping>

 

 

 

applicationContext.xml的配置代码:

<bean name="userService" class="net.buffalo.service.UserService"></bean> 

<bean name="buffaloConfigBean" class="net.buffalo.service.BuffaloServiceConfigurer">

       <property name="services">

            <map>

                <entry key="springUserService">

                    <ref bean="userService"/>

                </entry>

                //配置更多的代理...

            </map>

 

   </property>

</bean>

 

注意事项:

1 这里的bfapp启动时间要大于spring时间,要保证spring优先于Buffalo加载.

否则就报如下错误,找不到springUserService这个服务.

 

net.buffalo.service.NoSuchServiceException: springUserService  at net.buffalo.service.DefaultServiceRepository.get(DefaultServiceRepository.java:87)  at net.buffalo.service.BuffaloWorker.processRequest(BuffaloWorker.java:60)   at net.buffalo.web.servlet.ApplicationServlet.doRequest(ApplicationServlet.java:119)   at net.buffalo.web.servlet.ApplicationServlet.doPost(ApplicationServlet.java:91)

 

2 当把org.springframework.web.context.ContextLoaderServlet

换成:

org.springframework.web.context.ContextLoaderListener,控制台报如下错误

java.lang.ClassCastException: org.springframework.web.context.ContextLoaderListener

spring-1.2.3,spring-2.5.5, spring-framework-3.0.0.M4版本下还是这个错误,不过使用: org.springframework.web.context.ContextLoaderServlet在这三个版本下测试正常.

 

3集成spring, userService类中的调用方法不能在获取到容器的对象,如这样的代码:

RequestContext.getContext().getHttpSession();类似的调用都会报错,spring提供了这个服务类的所有代理.

 

 

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.FatalBeanException: Could not instantiate class [net.buffalo.service.UserService]; constructor threw exception; nested exception is java.lang.NullPointerException: null

org.springframework.beans.FatalBeanException: Could not instantiate class [net.buffalo.service.UserService]; constructor threw exception; nested exception is java.lang.NullPointerException: null

java.lang.NullPointerException  at net.buffalo.request.RequestContext.getHttpSession(RequestContext.java:105)...

 

Buffalo提供的常用JS函数

 

1 获取元素的Y坐标

function getElementY(element){

    var targetTop = 0;

    if (element.offsetParent) {

        while (element.offsetParent) {

           targetTop += element.offsetTop;

            element = element.offsetParent;

       }

    } else if (element.y) {

       targetTop += element.y;

    }

    return targetTop;

}

 

2 获取元素的X坐标

function getElementX(element){

    var targetLeft = 0;

    if (element.offsetParent) {

       while (element.offsetParent) {

           targetLeft += element.offsetLeft;

            element = element.offsetParent;

       }

    } else if (element.y) {

       targetLeft += element.x;

    }

    return targetLeft;

}

 

3 绑定元素值

<INPUT TYPE="checkbox" NAME="" id="testChk">

<INPUT TYPE="button" value="Bind Checkbox" onclick="bindChkbox()">

function bindChkbox() {

        //点击后只能是选中状态

       Buffalo.bind("testChk", "yes");

        //Buffalo.bind("testChk", "no");

 

}

 

4 遍历对象值

function openObj(obj) {

    var tmp = obj+"{";

    for (var x in obj) {

           tmp += x + "=" + obj[x]+";";

    }

    tmp += "}";

    return tmp;

}

你可能感兴趣的:(java,spring,bean,Ajax,servlet)