第二篇 hello world讲解
前面一篇文章给大家介绍了一个最简单的DWR应用的配置和实现过程,即一个hello world程序。这次我们来走进DWR的内心世界,了解她的配置,运行过程和工具类。
先来复习以下上一章hello world的部分内容:
1。把dwr.jar放在你webapp的WEB-INF/lib目录下
2。把以下几行代码添加到WEN-INF/web.xml文件中(以DWR2。0为准)
<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,并且将要被调用的java类写入其中
下面我们就来看看dwr.xml文件该怎么配置。
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="new" javascript="MyHello">
<param name="class" value="dao.Hello"/>
</create>
</allow>
</dwr>
PS:这是上一章hello world程序中用的dwr.xml。
1。其中<allow>部分定义了DWR能够创建和转换的类。
2。每一个在jsp页面中被异步调用的类需要一个<create>,有若干类型的creator,使用“new”关键字或者Spring 框架等。<javascript>的作用是在浏览器里给你创建的对象命名。
3。<param>被用来指定创造器的其他参数,每种构造器各有不同。例如,"new"创造器需要知道要创建的对象类型是什么。
在上面的dwr.xml中,我们在<create>中指定使用new来创建对象(就如同在java中我们使用new来创建对象一样),对象的名称为MyHello,这个对象可以在浏览器中被我们使用。在<param>中,我们指定name="class" value="dao.Hello",这表示我们创建的MyHello对象的类型是处于dao包中的一个名为Hello的类。
这样配置好之后,我们就可以在jsp页面中通过使用MyHello对象来访问dao包中的Hello类里面的方法了。
然后我们再来看一下jsp页面里面的代码。
<script src="dwr/interface/MyHello.js"></script>
<script src="dwr/util.js"></script>
<script src="dwr/engine.js"></script>
<script type="text/javascript">
function hello()
{
MyHello.sayHello(helloBack);
}
function helloBack(data)
{
dwr.util.setValue("show",data);
}
</script>
<body>
<input type="button" value="我要向世界问好!" >
<div id="show">这里将要显示出hello world,这是通过dwr调用Hello类中的sayHello()方法返回的结果!</div>
</body>
PS:
1。上面加载的外部js文件是必要的,其中MyHello.js能让你使用你在dwr.xml中创建的对象MyHello,util.js相当于一个工具,能让你很方便的操作页面里的内容,engine.js是dwr所必须的,没有它dwr就不能运行。
2。页面里只有一个按钮,和一个div,当点按钮的时候会调用hello()方法,那我们就来看看javascript中的hello()方法。在这个hello()方法中只有一行代码,表示要调用MyHello对象的sayHello()方法,就是可以异步调用后台dao包中Hello类的sayHello()方法。MyHello是你在dwr.util中配置的一个可以在浏览器中访问的对象的名称,它的类型是dao.Hello类。但是在后台Hello类中的sayHello()方法里,并没有参数,那MyHello.sayHello(helloBack);里为什么会有一个helloBack参数?这是因为Hello.sayHello()方法将返回一个String类型的值,所以调用javascript中的hello()方法之后,将交给helloBack()方法处理,MyHello.sayHello(helloBack);里面的参数就是要指定返回结果之后交给哪个方法处理。
3。在helloBack()方法里,有个参数data,这就是刚才hello()方法返回的结果,我们可以将这个返回的字符串用
alert(data);显示出来。但我们使用了dwr.util.setValue("show",data);这行代码就用到了util.js里面的工具。
4。dwr.util.setValue(参数1,参数2)可以将内容加入到指定id的标记内容里去。比如,上面有个id="show"的div,那么dwr.util.setValue("show",data);就是将data参数里的字符串加入到了div的内容里去了。如果dao.Hello类中的sayHello()方法返回一个“hello world”字符串,那么<div>里的内容变为<div id="show">hello world</div>
分享到:
相关推荐
DWR学习资料 :DWR 3.0 上传文件.txt DWR3.0反向Ajax示例.txt DWR3.0学习笔记.txt DWR3.0学习网址.txt dwr分页.doc DWR分页代码.doc DWR中文文档.doc DWR中文文档.pdf dwr做comet的完整实现.doc Spring整合DWR comet ...
一些DWR的学习资料,包括DWR的使用笔记,DWR的界面开发,和DWR的中文文档等
dwr学习总结 dwr学习总结 dwr学习总结
DWR案例DWR学习案例详解(数据库)DWR学习案例详解(数据库)DWR学习案例详解(数据库)
dwr学习教程2
包换7个文档,DWR学习笔记,中文API,DWR开发培训.ppt,WEB界面开发规范.doc,DWR.xml配置文件说明书.doc,DWRchinese.pdf,
dwr学习实例 初学者的宝,dwr学习实例 dwr实例 dwr初学者实例教程
dwr学习实例(简单登陆,完整包版,下载可直接跑) 刚做好,用的sql2005+myEclipse8.5+Hb3.2就是没做好可以注册用户名的提醒,学习中。。!
一个简单DWR学习二级菜单实例一个简单DWR学习二级菜单实例一个简单DWR学习二级菜单实例一个简单DWR学习二级菜单实例一个简单DWR学习二级菜单实例一个简单DWR学习二级菜单实例一个简单DWR学习二级菜单实例
DWR学习笔记和与spring整合练习,DWR学习笔记和与spring整合练习,DWR学习笔记和与spring整合练习,DWR学习笔记和与spring整合练习,
PDF格式的DWR学习课件 PDF格式的DWR学习课件 PDF格式的DWR学习课件
很好的学习资料;资料中包括DWR.xml配置文件说明、DWR学习
DWR学习资料+PPT 包括 DWR中文文档.pdf , 及一套DWR 的 ppt 学习教程 , DWR[1].xml配置文件说明书.doc
DWR学习笔记及经验总结,内包含dwr数控件,学习课件和学习笔记。
dwr学习笔记pdf文件,根据笔记内容即可学会使用dwr框架
dwr学习必读,其中包含了:dwr怎样获取LIST的值,dwr与STRUTS的融合等.
DWR学习文档易懂 好东西 下载学习学习
DWR学习讲解带源码,两个例子,都带有文档说明和源码
DWR学习笔记(附带很详细的例子),初学者必备
DWR学习笔记(教授如何配置DWR和详细的工程实例) 看完就会!