pwlazy的专栏

与时俱进,开拓创新

Ajax牛刀小试
使用了DWR框架,将数据库中城市列出在页面上

step1)web.xml中的配置

<servlet>
  <servlet-name>dwr-invoker</servlet-name>
 
  <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
  <init-param>
   <param-name>debug</param-name>
   <param-value>true</param-value>
  </init-param>
 </servlet>

 <servlet-mapping>
  <servlet-name>dwr-invoker</servlet-name>
  <url-pattern>/dwr/*</url-pattern>
 </servlet-mapping>

step2)dwr.xml

<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
    "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

<dwr>
    <allow>
       
        <create creator="spring" javascript="SignupService">
            <param name="beanName" value="signupService" />
            <param name="location" value="applicationContext-baby-beans.xml" />
            <include method="loadGateway" />
        </create>
       
        <convert converter="bean" match="com.mofile.baby.domain.Area"/>
    </allow>


</dwr>



step3)测试页面
<html>
    <head>
        <script type='text/javascript' src='/dwr/interface/SignupService.js'></script>
        <script type='text/javascript' src='/dwr/engine.js'></script>
        <script type='text/javascript' src='/dwr/util.js'></script>
        <script type='text/javascript'>
            function showList() {
               
               
                SignupService.loadGateway (loadList);
               
                document.getElementById("xx").innerHTML ="loading....";
               
            }
           
            function loadList(data) {
              
               
               
                var list = data.arealist;
               
                var temparea;
               
                var listarea="";
               
                for(var i=0;i<list.length;i++){
                   
                    temparea = list[i];
                   
                    listarea = listarea + (i+1) +":" + temparea.name + "<br>";
                }
              
               
                document.getElementById("xx").innerHTML = listarea ;
               
               
               
            }
    </script>
    </head>

    <body>
        <INPUT type="button" value="ajax" onclick="showList();">
        <div id="xx">
        </div>
    </body>
</html>

总结如下:

dwr.xml非常值得关注,在dwr中你需要配置你的service,这样可以通过js远程调用service,另外如果你返回的数据包含一些非典型的 java数据结构,比如list,map之类的话,你必须在dwr.xml中配置,一个典型的情况是你返回领域对象。如果你不配置,异步返回的数据会出现空 数据,因为dwr框架不知如何转化。

说白了,dwr框架调用远程service(在dwr中配置),然后根据将service返回的java对象转化为js对象,如何转换就需要你配置dwr.xml来告诉框架。

dwr的使用很简单,确实简化了ajax的开发。而且其文档也很详细。

参考文档:dwr官方网站
阅读更多
个人分类: ajax/js
想对作者说点什么? 我来说一句

Java做的拼图游戏

2008年09月17日 254KB 下载

牛刀小试之VC基础篇

2009年10月05日 1.03MB 下载

没有更多推荐了,返回首页

不良信息举报

Ajax牛刀小试

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭