第一步:下载DWR包。
从网站(http://directwebremoting.org/dwr/download)下载最新的dwr.jar包,放在你的Application的WEB-INF/lib目录下。
第二步:配置web.xml文件。
在web.xml文件的<web-app></web-app>标签中,添加如下配置:

1
2
3
4
5
6
7
8
9
10
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

第三步:配置dwr.xml文件。
在你的Application的WEB-INF下新建dwr.xml文件,内容如下:
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="Pict" scope="application">
<param name="class" value="bean.Pict"/>
<include method="method1" />
</create>
</allow>
</dwr>

解释:
creator="new"属性指定java类实例的生成方式。"new"意味着DWR应该调用类的默认构造函数来获得类的实例,一般我们用这个就可以搞定了。当然还有其它的方式,目前我还没有用到,就不说了。
javascript="Pict"指定JavaScript代码访问Java对象的时候使用的名称。
标签指定要公开给JavaScript的java类名。
<include>标签指定要公开给JavaScript的方法,不指定的话公开所有的方法。
第四步:在JS中调用。
1. 引入JavaScript脚本。
1
2
3
<script language="javascript1.2" src="dwr/interface/Pict.js"></script>
<script language="javascript1.2" src="dwr/util.js"></script>
<script language="javascript1.2" src="dwr/engine.js"></script>

其中第一个导入的标签脚本必须是手动写入,名字和<create>标签中的属性JavaScript的值相等,其后缀为.js。你只要在这里手动写入就可以了,实际由dwr根据配置文件自动生成其内容。util.js和engine.js是dwr自带的脚本文件。
2. 编写调用java方法的JS函数。
比如:下面是一个没有参数,没有返回值的函数调用。
1
2
3
Function callJava(){
Pict.method1();
}

如果无参数,有返回值:
1
2
3
4
5
6
Function callJava(){
Pict.method1(retu);//retu称之为回调函数,实际就是将返回值赋给了这个函数。
}
Function retu(data){
Alert(data);//这里的data的值才是实际上的方法method1的返回值。
}


如果有参数,也有返回值,可直接在方法中加入到回调函数的前面即可。
总的来说,参数和回调函数都放在方法的括号中,遵循的原则是回调函数总是最后一个,有参数就往其前面写,没有就不用写了。

更多相关文章

  1. iOS uiwebview无法从javascript方法加载资源
  2. 注入html行模板的最佳方法
  3. Javascript学习:案例7--对象属性和方法的遍历、删除、添加.html
  4. ABP(现代ASP.NET样板开发框架)系列之21、ABP展现层——Javascrip
  5. 为什么括号用于包装javascript函数调用? [重复]
  6. JS获取文件名的方法
  7. javascript 构造函数中的属性与原型上属性优先级的比较
  8. 简单数据的最佳服务器端数据存储方法
  9. 奈何两字拉成桥、不得不双击两次才能激活的JS方法

随机推荐

  1. Android检查权限
  2. EditText属性及使用
  3. Android体系结构
  4. Android事件处理之监听事件
  5. Android异步处理二:使用AsyncTask异步更新
  6. 《Android/OPhone 开发完全讲义》目录
  7. Android 面试题总结之Android 基础(三)
  8. Android 并发之CountDownLatch、CyclicBa
  9. Android 自定义RadioButton样式 RadioGro
  10. 搭建 Android 2.2 开发环境