`
peihong-ph
  • 浏览: 21342 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

dwr的使用

dwr 
阅读更多
Dwr使用说明

1. 将dwr的jar包导入到工程下面 dwr.jar 如果出现LogFactory的错误 则需要导入commons-logging-1.1.1.jar包
2. 在web.xml文件配置dwr的servlet
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
3. 在web.xml同目录下面创建一个dwr.xml文件(webRoot/web-inf)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="first">
<param name="class" value="helloWorld.Service" />
</create>
</allow>
</dwr>
并且要在allow中配置用使用的java类(指的是普通的类 注意区分单例模式和非单例模式) 以上配置是非单例模式的类
4.启动工程 然后再浏览器中输入工程的路径+dwr 即http://localhost:8080/Ajax326/dwr 以检查dwr配置是否正确
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory这个异常需要导入一个日志的jar包 引入commons-logging-1.1.1.jar
5.在使用到dwr的页面首先要引入
<script type='text/javascript' src='dwr/util.js'></script>
  <script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/interface/first.js'></script>
记住前两个是dwr的默认的js文件  第三个的文件名称interface后面的js的名称是在dwr.xml文件配置相应类的JavaScript的对应的值 该文档中的黑的部分是对应的
6.在该页面的JavaScript中可以直接利用first这个对象访问普通的java类中方法 访问格式:first+类中方法名称 在页面中JavaScript中使用的名字也要和dwr.xml文件中配置的JavaScript的属性值一样  该名字和上面的first一致
需要注意的是:java类方法名不能重载
7.在调用有返回值的java类的方法时 不管该方法有多少参数 在页面JavaScript中调用时该方法总要比类中的方法多一个‘参数’ 这个参数是回调函数 
Dwr会自动将类型进行转换
8.在导入dwr中的util.js的页面的JavaScript函数中可以直接使用$(“key”)用来代表document.getElementById(“key”)
9.如果返回值是对象或者数组(数组中的元素也为对象时),此时需要在dwr.xml文件中配置类的转换
<convert match="com.puckasoft.ajax.po.User" converter="bean"></convert>
其中match指的是转换的类的路径 这样dwr就会自动将该java类转换成js中的对象形式

单例模式的类dwr的使用首先需要导入相应的jar包 导入 bsh.jar以及bsf.jar包
然后再dwr.xml文件中配置如下信息:需要改变的是JavaScript的属性值和import以及return的内容
注意:return的内容必须是该类的名称加上返回实例的方法getInstance();
<create creator="script" javascript="chinaCitySingletonDao">
    <param name="language" value="beanshell"/>
    <param name="script">
      import com.puckasoft.dao.ChinaCitySingletonDao;
      return ChinaCitySingletonDao.getInstance();
    </param>
</create>




使用dwr时注意:第一点: 配置的是单例模式还是非单例模式
第二点:用到对象转换时一定要记得将对象在dwr.xml文件进行转换
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics