一、调用服务器端的方法
从表面上看,客户端JavaScript代码可以调用远程Java方法,但这是一种假象。实际情况是:DWR负责创建Java对象,并动态生成系列JavaScript脚本,而且在JavaScript脚本中创建于Java对等的JavaScript对象,这个JavaScript对象里包含了对应的Java对象的全部方法。
二、调用服务器端方法的通用配置:
通常DWR会动态生成engine.js和util.js两个脚本文件。除此之外,在dwr.xml文件中每使用一次create元素,将对应于创建一个Java对象,并将该对象暴露成JavaScript实例。DWR也将动态生成一个JavaScript文件,这个JavaScript文件的位置在:
实例中写入的js文件路径。
三、回调函数
一旦导入了DWR动态生成的JavaScript脚本,我们就可以使用异步方式来调用这些方法。所谓异步,就是需要在调用远程方法时传入回调函数。
在调用远程Java方法时,总需要为该方法增加一个参数,传入的最后一个参数就是回调函数。回调函数在服务器响应完成时被触发,用于将服务器响应数据显示在当前页面中。
实例中的回调函数
实例中的Java对象
package com.test.ajax;
public class TestDwr {
public String getMyName()
{
return"Hello Casco!";
}
}
实例中的dwr.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">
<dwr>
<allow>
<create creator="new" javascript="CASCO" scope="application">
<param name="class" value="com.test.ajax.TestDwr"/>
</create>
</allow>
</dwr>
四、工程的目录