实战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
    评论
电子图书资源服务系统是一款基于 Java Swing 的 C-S 应用,旨在提供电子图书资源一站式服务,可从系统提供的图书资源中直接检索资源并进行下载。.zip优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人系统开发经验充足,有任何使用问题欢迎随时与我联系,我会及时为你解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(若有),项目具体内容可查看下方的资源详情。 【附带帮助】: 若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步。 【本人专注计算机领域】: 有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为你提供帮助,CSDN博客端可私信,为你解惑,欢迎交流。 【适合场景】: 相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能 【无积分此资源可联系获取】 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。积分/付费仅作为资源整理辛苦费用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值