实战dwr

实战dwr

dwr的准备工作:取得dwrdwr.jar包和其他dwr所需的其他jar包这里不作介绍了。

本实例所要介绍的是采用dwr来操作页面表单table,发送各种(带有参数包括简单类型,list,map类型)请求,并返回各种信息(包括普通的javabeanjava.util.Listjava.util.Map信息),下面是源代码

web.xml

<servlet>

       <servlet-name>dwr-invoker</servlet-name>

       <display-name>DWR Servlet</display-name>

       <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>

       <init-param>

           <param-name>debug</param-name>

           <param-value>false</param-value>

       </init-param>

       <init-param>

           <param-name>logLevel</param-name>

           <param-value>WARN</param-value>

       </init-param>

</servlet>

<servlet-mapping>

       <servlet-name>dwr-invoker</servlet-name>

       <url-pattern>/dwr/*</url-pattern>

</servlet-mapping>

dwr.xml

<dwr>

    <allow>

       <create creator="new" javascript="DealerMonitor">

           <param name="class"

              value="com.vstsoft.dataimport.dto.Monitor" />

       </create>

       <convert converter="bean"

           match="com.vstsoft.dataimport.dto.Dealer" />

    </allow>

    <signatures>

       <![CDATA[

       import java.util.List;

       import java.util.Map;

       import com.vstsoft.dataimport.dto.Monitor;

       import com.vstsoft.dataimport.dto.Dealer;

       Monitor.setDealers(List<Dealer>);

       Monitor.setDealersMap(Map<String,Dealer>);

       ]]>

    </signatures>

</dwr>

Dealer.java

package com.vstsoft.dataimport.dto;

 

public class Dealer {

    private String sid = "";

 

    private String name = "";

 

    private String info = "";

 

    private String level = "";

 

    private String[] product;

 

    public String getInfo() {

       return info;

    }

 

    public void setInfo(String info) {

       this.info = info;

    }

 

    public String getLevel() {

       return level;

    }

 

    public void setLevel(String level) {

       this.level = level;

    }

 

    public String getName() {

       return name;

    }

 

    public void setName(String name) {

       this.name = name;

    }

 

    public String[] getProduct() {

       return product;

    }

 

    public void setProduct(String[] product) {

       this.product = product;

    }

 

    public String getSid() {

       return sid;

    }

 

    public void setSid(String sid) {

       this.sid = sid;

    }

}

Monitor.java

package com.vstsoft.dataimport.dto;

 

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Set;

 

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

 

/**

 * author:sunjianbin <br>

 * email:volcano_hosan@sina.com

 */

public class Monitor {

    private static Log log = LogFactory.getLog(Monitor.class);

 

    /**

     * param:String,String return:java.util.List

     * information:dwr调用服务器端类的带有简单参数的方法<br>

     * 返回java.util.List信息

     */

    public List getDealers(String name, String level) {

       log.info("name:" + name + ",level:" + level);

       List list = new ArrayList();

       Dealer dealer = new Dealer();

       dealer.setName("海尔");

       dealer.setInfo("青岛海尔");

       dealer.setLevel("1");

       dealer.setSid("0532001");

       list.add(dealer);

       Dealer dealer2 = new Dealer();

       dealer2.setName("海信");

       dealer2.setInfo("青岛海信");

       dealer2.setLevel("2");

       dealer2.setSid("0532002");

       list.add(dealer2);

       log.info("list size:" + list.size());

       return list;

    }

 

    /**

     * param:String,String return:java.util.List

     * information:dwr调用服务器端类的带有简单参数的方法<br>

     * 返回一个javaBean信息

     */

    public Dealer getDealer(String name, String level) {

       log.info("经销商名称:" + name + ",经销商级别:" + level);

       Dealer dealer = new Dealer();

       dealer.setName("海尔");

       dealer.setInfo("青岛海尔");

       dealer.setLevel("1");

       dealer.setSid("0532001");

       return dealer;

    }

 

    /**

     * param:String,String return:java.util.List

     * information:dwr调用服务器端类的带有简单参数的方法<br>

     * 返回java.util.Map信息

     */

    public Map getDealersMap(String name, String level) {

       log.info("经销商名称:" + name + ",经销商级别:" + level);

       Map map = new HashMap();

       Dealer dealer = new Dealer();

       dealer.setName("海军第一舰队");

       dealer.setInfo("总司令肖光");

       dealer.setLevel("1");

       dealer.setSid("6106335");

       map.put("key1", dealer);

       Dealer dealer2 = new Dealer();

       dealer2.setName("空军航空大队");

       dealer2.setInfo("统帅杨勇");

       dealer2.setLevel("2");

       dealer2.setSid("388949596");

       map.put("key2", dealer2);

       log.info("map 的大小:" + map.size());

       return map;

    }

 

    /**

     * param:java.util.List return:java.util.List

     * information:dwr调用服务器端类的带有java.util.List参数的方法<br>

     * 返回java.util.List信息

     */

    public List setDealers(List dealers) {

       List list = new ArrayList();

       if (dealers != null) {

           for (int i = 0; i < dealers.size(); i++) {

              Dealer dealer = (Dealer) dealers.get(i);

              log.info("经销商名称:" + dealer.getName() + ",经销商详细信息:"

                     + dealer.getInfo());

              list.add(dealer);

           }

       }

       return list;

    }

 

    /**

     * param:java.util.Map return:java.util.Map

     * information:dwr调用服务器端类的带有java.util.Map参数的方法<br>

     * 返回java.util.Map信息

     */

    public Map setDealersMap(Map dealers) {

       Map map = new HashMap();

       if (dealers != null) {

           Set set = dealers.keySet();

           Iterator it = set.iterator();

           while (it.hasNext()) {

              String key = (String) it.next();

              log.info("key:" + key);

              Dealer dealer = (Dealer) dealers.get(key);

              log.info("经销商名称:" + dealer.getName() + ",经销商详细信息:"

                     + dealer.getInfo());

              map.put(key, dealer);

           }

       }

       return map;

    }

}

test.jsp

<%@ page contentType="text/html;charset=GBK" language="java" %>

<html>

    <head>

        <title>dwr功能演示</title>

       <script src='dwr/interface/DealerMonitor.js'> </script>

        <script src='dwr/engine.js'> </script>

        <script src='dwr/util.js'> </script>

    </head>

<SCRIPT language=javascript>

//采用dwrutil.jsDWRUtil得到表单值

function getValue(){

    var name=DWRUtil.getValue("name");

    var info=DWRUtil.getValue("info");

    var product=DWRUtil.getValue("product");

    var level=DWRUtil.getValue("level");

    var sid=DWRUtil.getValue("sid");

    var text=DWRUtil.getText("level");

    var product2=$("product");

    //alert("产品:"+product2.value);

    if(level=="-1"){

       alert("请选择经销商级别");

       return false;

    }

    alert("经销商名称:"+name+",经销商详细信息:"+info+",经销商经销产品:"+product+"经销商级别:"+text+",经销商级别(参数)"+level+",隐藏id值:"+sid);

    var dealer={name:null,info:null,product:null,level:null,sid:null};

    var params=DWRUtil.getValues(dealer);

    alert(params);

    alert("经销商名称:"+dealer.name+",经销商详细信息:"+dealer.info+",经销商经销产品:"+dealer.product+"经销商级别:"+dealer.level+",隐藏id值:"+dealer.sid);

}

//从服务器端得到javabean信息

function getValueFormServer(){

    var name=DWRUtil.getValue("name");

    var level=DWRUtil.getValue("level");

    //带有简单参数,回调函数为setValueFromServer

    DealerMonitor.getDealer(setValueFromServer,name,level);

}

function setValueFromServer(dealer){

    alert(dealer.name);

    DWRUtil.removeAllRows("table4");

    //javabean的信息组装成一个简单的数组,然后显示到页面上

    var array=[{"sid":dealer.sid,"name":dealer.name,"info":dealer.info,"level":dealer.level}];

    DWRUtil.addRows("table4",array,[function(item){return item.sid},function(item){return item.name},function(item){return item.info},function(item){return item.level}]);

}

//从服务器端得到java.util.List类型的信息

function getListValuesFormServer(){

    var name=DWRUtil.getValue("name");

    var level=DWRUtil.getValue("level");

    //带有简单参数,回调函数为setListValuesFromServer

    DealerMonitor.getDealers(setListValuesFromServer,name,level);

}

function setListValuesFromServer(dealers){

    //关于取得java.util.List里面的对象的方法

    for(var i=0;i<dealers.length;i++){

       alert("经销商名称:"+dealers[i].name);

    }

    DWRUtil.removeAllRows("table4");

    DWRUtil.addRows("table4",dealers,[function(item){return item.sid},function(item){return item.name},function(item){return item.info},function(item){return item.level}]);

}

//从服务器端得到java.util.Map类型的信息

function getMapValuesFormServer(){

    var name=DWRUtil.getValue("name");

    var level=DWRUtil.getValue("level");

    //带有简单参数,回调函数为setListValuesFromServer

    DealerMonitor.getDealersMap(setMapValuesFromServer,name,level);

}

function setMapValuesFromServer(dealers){

    //关于取得java.util.Map里面的对象的方法

    for(var property in dealers){

       var bean = dealers[property];

       alert(bean.name);

    }

    DWRUtil.removeAllRows("table4");

    DWRUtil.addRows("table4",dealers,[function(item){return dealers[item].name},function(item){return dealers[item].name},function(item){return dealers[item].info},function(item){return dealers[item].level}]);

}

//通过dwr来对一个对象{}来设置其值列表

function setValues(){

    DWRUtil.setValues({name:"上海华联",info:"上海华联商场",product:"2",sid:"1380001",level:"2"});

}

//通过dwr简单的对一个input来设置其值

function setValue(){

    DWRUtil.setValue("name","联合利华");

    DWRUtil.setValue("info","上海黄埔区");

    DWRUtil.setValue("product","2");

    DWRUtil.setValue("sid","021-7862392738");

    DWRUtil.setValue("level","1");

}

//采用dwr来操作select

function deldwrselect(){

    DWRUtil.removeAllOptions("dwrselect");

    var cctv=[{"name":"中央一套","value":"cctv1"},{"name":"中央二套","value":"cctv2"},{"name":"中央三套","value":"cctv3"}];

    DWRUtil.addOptions("dwrselect",cctv,"value","name");

    DWRUtil.setValue("dwrselect", "cctv3");

    var value=DWRUtil.getValue("dwrselect");

    //dwrDWRUtil.getText仅用于对select的操作

    var text=DWRUtil.getText("dwrselect");

    alert("value:"+value+",text:"+text);

}

//采用dwr来操作table里面的行和列,要采用<tbody>

function deldwrtable(){

    DWRUtil.removeAllRows("table4");

    var items=[{"name":"中国","net":"www.cctv.com.cn","city":"北京"},{"name":"北京","net":"sunjianbin.blog.hexun.com","city":"北京"}];

    DWRUtil.addRows("table4",items,[function(item){return item.name},function(item){return item.net},function(item){return item.city}]);

    //DWRUtil.addRows("table4",['sun','jian','bin'],[function(item){return item;},function(item){return item.toUpperCase();}]);

}

//向服务器发送List的信息

function sendListValueToServer(){

    var dealer={name:null,info:null,product:null,level:null,sid:null};

    DWRUtil.getValues(dealer);

    dealers = [{ name:"中华人民共和国",info:"国务院" ,sid:"01031889296",level:"1"},dealer];

    DealerMonitor.setDealers(setListValuesFromServer,dealers);

}

//向服务器发送Map信息

function sendMapValueToServer(){

    var dealer={name:null,info:null,product:null,level:null,sid:null};

    DWRUtil.getValues(dealer);

    dealers = { "key1":{ name:"中华人民共和国",info:"国务院" ,sid:"01031889296",level:"1"}, "key2":dealer};

    DealerMonitor.setDealersMap(setMapValuesFromServer,dealers);

}

</SCRIPT>

<body>

<table width="75%" border="0" align="center" cellpadding="1" cellspacing="1">

  <tr align="center">

    <td colspan="4">采用DWR得到页面表单信息</td>

  </tr>

  <tr>

    <td width="22%" align="right">经销商名称</td>

    <td colspan="3" align="left"> <input name="name" type="text" id="name" value="国美家电"></td>

  </tr>

  <tr>

    <td align="right">经销商详细信息</td>

    <td colspan="3" align="left"> <textarea name="info" id="info">北京国美</textarea></td>

  </tr>

  <tr>

    <td align="right">经销产品</td>

    <td width="25%" align="left"> <input name="product" type="checkbox" id="product" value="1"></td>

    <td width="28%" align="left"> <input name="product" type="checkbox" id="product" value="2"></td>

    <td width="25%" align="left"> <input name="product" type="checkbox" id="product" value="3"></td>

  </tr>

  <tr>

    <td align="right">行业级别</td>

    <td colspan="3" align="left"> <select name="level" id="level">

        <option value="-1" selected>-选择-</option>

        <option value="0">总代理</option>

        <option value="1">一级代理</option>

        <option value="2">二级代理</option>

      </select></td>

  </tr>

  <tr align="center">

    <td colspan="4"> <input name="sid" type="hidden" id="sid" value="123456789">

      <input type="button" name="Submit" value="提交经销商信息" onClick="getValue()">

      <input type="button" name="Submit3" value="批量重设经销商信息" onClick="setValues()">

      <input type="button" name="Submit32" value="逐个重设经销商信息" onClick="setValue()">

    </td>

  </tr>

  <tr align="center">

    <td colspan="4">

<input type="button" name="Submit323" value="往服务器发回List经销商信息" onClick="sendListValueToServer()">

      <input type="button" name="Submit3232" value="往服务器发回Map经销商信息" onClick="sendMapValueToServer()"></td>

  </tr>

</table>

<hr>

<table width="75%" border="0" align="center" cellpadding="1" cellspacing="1">

  <tr align="center">

    <td colspan="3">采用DWR操作select</td>

  </tr>

  <tr>

    <td colspan="3" align="center"> <select name="dwrselect" id="dwrselect">

        <option value="-1" selected>-选择-</option>

        <option value="0">总代理</option>

        <option value="1">一级代理</option>

        <option value="2">二级代理</option>

      </select> </td>

  </tr>

  <tr>

    <td>&nbsp;</td>

    <td>&nbsp;</td>

    <td>&nbsp;</td>

  </tr>

  <tr align="center">

    <td colspan="3">

      <input type="button" name="Submit2" value="dwr删除select列表信息" onClick="deldwrselect()">

    </td>

  </tr>

</table>

<hr>

<table width="75%" border="0" align="center" cellpadding="1" cellspacing="1">

  <tr align="center">

    <td width="100%">采用DWR来操作表Table</td>

  </tr>

</table>

<table width="75%" border="0" align="center" cellpadding="1" cellspacing="1">

  <tr align="center">

    <td width="16%">序号</td>

    <td width="53%">名称</td>

    <td width="31%">行业级别</td>

  </tr>

</table>

<table width="75%" border="0" align="center" cellpadding="1" cellspacing="1">

  <tbody id="table4">

    <tr align="center">

      <td width="16%">1</td>

      <td width="53%">北京国美</td>

      <td width="31%">总代理</td>

    </tr>

    <tr align="center">

      <td>2</td>

      <td>上海联华</td>

      <td>一级代理</td>

    </tr>

    <tr align="center">

      <td>3</td>

      <td>联合利华</td>

      <td>二级代理</td>

    </tr>

  </tbody>

</table>

<table width="75%" border="0" align="center" cellpadding="1" cellspacing="1">

  <tr align="center">

    <td width="100%"><input name="butt" type="button" id="butt" onClick="deldwrtable()" value="dwr删除table所有行">

      <input type="button" name="Submit322" value="从服务器List得到经销商列表信息" onClick="getListValuesFormServer()">

      <input type="button" name="Submit3222" value="从服务器得到单个经销商信息" onClick="getValueFormServer()"></td>

  </tr>

  <tr align="center">

    <td><input type="button" name="Submit3223" value="从服务器Map得到经销商列表信息" onClick="getMapValuesFormServer()"></td>

  </tr>

</table>

<p>&nbsp;</p>

</body>

</html>

采用dwr+strutsaction开发文件上传进度条在我的博客里有其他文章介绍

采用dwr+spring开发数据库级的文章后续会逐渐添加

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值