艾伦·德詹尼丝脱口秀:Dwr入门操作手册

来源:百度文库 编辑:九乡新闻网 时间:2024/05/04 05:55:41

Dwr入门操作手册

DWR配置和使用

设置DWR的使用是简单的:将DWR的jar文件拷入Web应用的WEB-INF/lib目录中,在web.xml中增加一个servlet声明,并创建DWR的配置文件。

DWR的分发中需要使用一个单独的jar文件。你必须将DWR servlet加到应用的WEB-INF/web.xml中布署描述段中去。


        dwr-invoker

   uk.ltd.getahead.dwr.DWRServlet
       
            debug
            true
       

   

   
        dwr-invoker
        /dwr/*
   

 一个可选的步骤是设置DWR为调试模式—象上面的例子那样—在servlet描述段中将debug参数设为true。当DWR在调试模式时,你可以从HTMl网页中看到所有的可访问的Java对象。包含了可用对象列表的网页会出现在/WEBAPP/dwr这个url上,它显示了对象的公共方法。所列方法可以从页面中调用,允许你,第一次,运行服务器上的对象的方法。下图显示了调试页的样子:

调试页

  现在你必须让DWR知道通过XMLHttpRequest对象,什么对象将会接收请求。这个任务由叫做dwr.xml的配置文件来完成。在配置文件中,定义了DWR允许你从网页中调用的对象。从设计上讲,DWR允许访问所有公布类的公共方法,但在我们的例子中,我们只允许访问几个方法。下面是我们示例的配置文件:

   

       

       

           

              

       

  

上面的文件实现了我们例子中的两个目标。首先,标记告诉DWR将com.yd.pojos.Userss对象的类型转换为联合数组,因为,出于安全的原因,DWR默认的不会转换普通bean。第二,标记让DWR暴露出com.yd.imp.UserCol类给JavaScript调用;我们在页面中使用JavaScript文件被javascript属性定义。我们必须注意标记,它指明了com.yd.imp.UserCol类的哪些方法可用。

 

1: 基本的客户端发送值和接受值

过程:

1:导入包dwr.jar

2: 修改web。Xml文档

3:编写java处理类(代码从简)

package com.yd.colbean;

 

public class TestDWR {

       public String getHello(String name){

              return "你好: "+name;

       }

}

4:编写Dwr.xml,在其中暴露可以脚本中间调用的方法。其中javascript="TestDWR"指在 客户端脚本中调用的名字。    暴露的方法

   

      

                       

              

       

5:下面编写Test1.jsp

先在jsp页面中间增加下面的代码。这个可以在上面提到的测试页面中间找到,复制过来即可

      

      

      

 

   

       

   

   

   

下面点击按钮就可以通过ajax向服务器发请求。

2: 对表格数据进行操作

刚才我们在客户端使用文本框和div块来输入数据可接受数据,在这个中间可以使用下面的方法来处理数据。

DWRUtil.getValue(“username”);             //这个方法得到页面中间id为username的值

DWRUtil.setValue(“rst”,”你好”);           //这个方法设置页面中间id为username的值

 

在客户端显示数据还有其他的方式,其中使用比较多的有表格显示数据集合,下拉框显示多条数据。

在dwr中间可以使用方法来比较方便的再客户端操作显示数据

先看基本的方法

DWRUtil.removeAllOptions('rst');//删除列表中的所有option

DWRUtil.addOptions('rst', goods,"id","msg");

//添加option对象,goods是对象数组,其属性id作为option的value值。其属性msg作为option的text的值

DWRUtil.removeAllRows("rst");//删除tbody中间所有的行

DWRUtil.addRows("rst", goods,[getid, getmsg]);//添加表的行,goods数组

 

下面例子说明:

先看后台bean:

Message.java封装基本的消息

package com.yd.colbean;

public class Message {

  private Integer id;

  private String msg;             

  public Integer getId() {

                return id;

  }            

  public void setId(Integer id) {

                this.id = id;

  }

  public String getMsg() {

                return msg;

  }

  public void setMsg(String msg) {

                this.msg = msg;

  }

}

控制类

package com.yd.colbean;

 

import java.util.ArrayList;

import java.util.List;

 

public class UserCol {

  private static List ls=new ArrayList();

  //模拟得到所有的的消息集合,

  public List getUserMessage(){

                if(ls.size()<2){//如果消息数量太少,就删除,另外增加,在实际中应该从数据库中取值

                              ls.clear();

                              for(int i=0;i<6;i++){

                                            Message msg=new Message();

                                            msg.setId(new Integer(i));

                                            msg.setMsg("消息内容"+i);

                                            ls.add(msg);

                              }

                }                          

                return ls;

  }

}

配置文件

Web.xml同上

dwr.xml

   

   

        

       

       

       

       

   

注意在服务器返回集合到客户端时,需要进行转换位javascript的对象。需要定义convert

下面是

Test1.jsp

同样需要复制

 

到页面中间

 

 

 

   

             

                    

      

                           

                           

                           

                    

                 

 

 

                 

   

idmsgaa

 

 

最后显示结果

 点击按钮