DWR2在WSAD(jdk1.4)上使用的方法

以一个例子说明DWR2WSADjdk1.4)上使用的方法

 

1.和在eclipse上一样,首先要导入jar包,这里需要两个:dwr.jar, commons-logging-1.0.4.jar

放到项目webApplication/WEB-INF/lib目录下。注意:这里的dwr是经过我们处理的哦,删掉了里面的org.directwebremoting.annotations.AnnotationsConfigurator这个类,因为jdk1.4不支持

2.同样的也需要配置文件,将dwr2要配置的servlet配置到webApplication/WEB-INF目录下的web.xml里面,注意<servlet><servlet-mapping>这里要分开,可能工具版本太低了。配置如下:

  <!红色部分为dwr针对jdk1.4的配置  -->

 

<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>

  <init-param>

   <param-name>classes</param-name>

   <param-value> java.lang.Object</param-value>

   </init-param>

</servlet>

 

<servlet-mapping>

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

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

</servlet-mapping>

3.将源代码放入项目里,这里我是放入了PMS_CJ002_Task文件夹下的test包下,

DwrBo.java

package test;

 

import java.util.ArrayList;

import java.util.List;

 

public class DwrBO {

 

    public String sayHello(String username)

    {

        // 为了前台显示loading界面,模拟任务占用较长时间

 

        try {

            Thread.sleep(3000);

        } catch (Exception ef) {

        }

        System.out.println("客户端发送的请求是: " + username);

 

        return username + "说:你好,世界!";

    }

 

    public List getList(String str)

    {

        // 为了前台显示loading界面,模拟任务占用较长时间

 

        try {

            Thread.sleep(3000);

        } catch (Exception ef) {

        }

       

        System.out.println(str);

        List list = new ArrayList();

        InputRecord bean1 = new InputRecord();

        bean1.setUsername("yuan");

        bean1.setPassword("123");

        InputRecord bean2 = new InputRecord();

        bean2.setUsername("dong");

        bean2.setPassword("741");

        list.add(bean1);

        list.add(bean2);

        // list.add("test");

        return list;

    }

 

}

 

 

InputRecord.java

package test;

 

public class InputRecord {

 

private String username;

   

    private String password;

 

    public String getUsername() {

        return username;

    }

 

    public void setUsername(String username) {

        this.username = username;

    }

 

    public String getPassword() {

        return password;

    }

 

    public void setPassword(String password) {

        this.password = password;

    }

}

 

 

4.然后配置dwr.xml文件,这个文件和web.xml文件平级,注意:这里写类的路径时不要把文件夹名字写上了,直接包名.类名。简单类型不需要<convert>配置内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">

 

<dwr>

<allow>  

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

   <param name="class" value="test.DwrBO" />  

  </create>  

  <convert converter="bean" match="test.InputRecord">  

   <param name="include" value="username,password" />  

  </convert>  

</allow>

</dwr>

 

5.现在就是jsp页面了,这里我直接放在了webApplication目录下。Jsp里取内容都是固定写法,首先导入js,红色的和dwr配置文件有关 

<script src="dwr/interface/dwrbo.js"></script>

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

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

然后就是调用了,全部jsp文件testDWR.jsp如下:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<HTML>

<HEAD>

<%@ page

language="java"

contentType="text/html; charset=GB18030"

%>

<META http-equiv="Content-Type" content="text/html; charset=GB18030">

<META name="GENERATOR" content="IBM WebSphere Studio">

<TITLE></TITLE>

</HEAD>

 

 

<script src="dwr/interface/dwrbo.js"></script>

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

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

 

 

<!-- String -->

<script type="text/javascript">

/**响应界面事件,调用java对象的方法*/

function updateResult() {

    dwr.util.useLoadingMessage("正在处理,请秒候. . .")

    //使用dwr工具类得到userName组件内的值

    var name = dwr.util.getValue("userName");

    //调用服务器上的对象方法,并设定回调函数

    dwrbo.sayHello(name,callBack);

}

//定义响应调用结果的回调函数

var callBack=function(data) {

var srcData=dwr.util.getValue("serverReplay");

dwr.util.setValue("serverReplay", data+"/r/n"+srcData);

};

    //function testtt(theTab){

    //window.alert("你点击了!"+theTab.getAttribute("tabId"));

    //}

</script>      

       

<!-- list -->      

<script type="text/javascript">

    function callTest(){   

     // alert("ok"); 

      dwr.util.useLoadingMessage("正在处理,请秒候. . .")

    //调用服务器上的对象方法,并设定回调函数

      dwrbo.getList("传到服务端的参数",callBackForTest);

    }   

    function callBackForTest(data){   

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

               //alert(data[i].username); 

               var show = "username="+data[i].username+",password="+data[i].password;

               // alert(show);

               // document.getElementById("dd").innerHTML("<span>123</span>");

               document.getElementById("result"+i).value=show;

               document.getElementById("result").style.display='block';

               //DWRUtil.setValue("version2", data[i].username);   

        }   

    }   

</script>

 

<BODY>

        <li>DWRString

        <pre>

         <br>你的用户名:<input type="text" name="userName" onchange="updateResult();" />

         <br>服务器回应:<textarea cols="50" rows="5" name="serverReplay" id="aa"></textarea>

         <input type="button" value="清 除"

                onclick="javascript:document.getElementById('aa').value='';">

         </pre>

         <hr>

         <li>DWR传装着对象的list

         <input type="button" value="显示列表" onclick="callTest();"><br>

         <div id="dd">&nbsp</div>

        <div id="result">

        <input id="result0" size="50"/><br>

        <input id="result1" size="50"/><br>

        <input id="result2" size="50"/><br>

        <input id="result3" size="50"/><br>

        </div>

</BODY>

</HTML>

 

 

6.构建项目,启动服务器,地址栏输入http://localhost:8085/CPCWeb/testDWR.jsp即可操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值