dwr2.0开篇

前端之家收集整理的这篇文章主要介绍了dwr2.0开篇前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
1、下载dwr包。@H_502_1@
2、新建web工程,在web.xml文件中加入servlet配置。@H_502_1@
<servlet>@H_502_1@
<servlet-name>dwr-invoker</servlet-name>@H_502_1@
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>@H_502_1@
<init-param>@H_502_1@
<param-name>debug</param-name>@H_502_1@
<param-value>true</param-value>@H_502_1@
</init-param>@H_502_1@
</servlet>@H_502_1@
<servlet-mapping>@H_502_1@
<url-pattern>/dwr/*</url-pattern>@H_502_1@
</servlet-@H_502_1@
3、新建一个类。@H_502_1@
package helloWorld;@H_502_1@

public class Service {@H_502_1@
public String sayHello(String yourName) {@H_502_1@
System.out.print("throw");@H_502_1@
return "Hello World " + yourName;@H_502_1@
}@H_502_1@
4、在web.xml同目录下新建dwr.xml配置文件,配置如下:(也可以直接在demo中拷贝)@H_502_1@
<?xml version="1.0" encoding="UTF-8"?>@H_502_1@
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">@H_502_1@
<dwr>@H_502_1@
<allow>@H_502_1@
<create creator="new" javascript="service">@H_502_1@
<param name="class" value="helloWorld.Service"/>@H_502_1@
</create>@H_502_1@
</allow>@H_502_1@
</dwr>@H_502_1@
5、发布工程,启动服务器,在浏览器中输入http://localhost:8080/工程名/dwr,测试dwr是否配置成功。需要在web.xml中配置debug为true.@H_502_1@
6、新建jsp页面,导入dwr配置文件,如下:@H_502_1@
<script type="text/javascript" src="dwr/util.js"></script>@H_502_1@
<script type="text/javascript" src="dwr/engine.js"></script>@H_502_1@
<script type="text/javascript" src="dwr/interface/service.js"></script>//这个js是根据后台代码生成在内存当中的js,把java的代码暴露出来。@H_502_1@
7、调用dwr的后台接口:@H_502_1@
<script type="text/javascript">@H_502_1@
function firstDwr() {@H_502_1@
service.sayHello("LuLu",callBackHello);//service与dwr.xml配置的javascript属性名字一样。也是用来取名js的文件。@H_502_1@
function callBackHello(data) {@H_502_1@
alert(data);@H_502_1@
</script>@H_502_1@
8、配置多个dwr.xml配置。@H_502_1@
在web.xml中,配置init参数,以config开头来配置dwr的名称。配置如下@H_502_1@
<init-param>@H_502_1@
<param-name>config-fuck</param-name>@H_502_1@
<param-value>/WEB-INF/dwr/dwr-fuck.xml</param-value>@H_502_1@
<param-name>config-shit</param-name>@H_502_1@
<param-value>/WEB-INF/dwr/dwr-shit.xml</param-value>@H_502_1@
9、配置dwr.xml文件。@H_502_1@
init这个初始化部分申明被用来创建远程beans,在init部分定义只是告诉DWR这些扩展的存在,给出了如何使用的信息。就像import里面一样。@H_502_1@
allow部分定义了dwr能够创建和转换的类。@H_502_1@
create元素如何结构@H_502_1@
<create creator="" javascript="" scope="">@H_502_1@
<param name="" value=""/>@H_502_1@
<exclude method=""/>@H_502_1@
<include method=""/>@H_502_1@
</create>@H_502_1@
creator属性:new,spring,script等。@H_502_1@
javascript属性:在浏览器里给你创建的对象名。不要使用javascript保留字。@H_502_1@
param元素表示每个bean从哪里生成。@H_502_1@
include和exclude表示要暴露和隐藏的方法。@H_502_1@
bean和对象转换器@H_502_1@
为某一个类单独打开转换器@H_502_1@
<convert converter="bean" match="your.full.package.BeanName"/>@H_502_1@
可以转换所有的javabean@H_502_1@
<convert converter="bean" match="*"/>@H_502_1@
dwr整合。@H_502_1@
让dwr使用spring创造器创建和远程调用beans,配置如下:@H_502_1@
<allow> ...@H_502_1@
<create creator="spring" javascript="#Fred">@H_502_1@
<param name="beanName" value="#Shiela" />@H_502_1@
</allow>@H_502_1@
//spring,beanName是固定写法。@H_502_1@
dwr中的javascript@H_502_1@
dwr根据dwr.xml生成和java代码类似的javascript代码。@H_502_1@
不推荐回调函数放在第一个参数,可以把回调函数放在元数据对象里。@H_502_1@
创造一个与java对象匹配的javascript对象。@H_502_1@
var p = {name:"name1",age:20,birthdays:[new Date(),new Date("1 Jan 2008")]};@H_502_1@
Remote.setPerson(p);@H_502_1@
engine.js功能@H_502_1@
用来转换来至动态生成的接口的javascript函数调用的,所以只要用到dwr就要用到,每个页面都要引入。@H_502_1@
使用选项:通过DWREngine.setX();设置全局属性。@H_502_1@
DWREngine.setTimeout(1000);@H_502_1@
批量执行,减少反应时间:@H_502_1@
DWREngine.beginBatch();@H_502_1@
方法1;@H_502_1@
方法2;@H_502_1@
DWREngine.endBatch(@H_502_1@
{timeout:3000}@H_502_1@
);@H_502_1@
一般使用异步方法访问服务端。@H_502_1@
DWREngine.setErrorHandler(function);改变错误处理方式。@H_502_1@
DWREngine.setWarningHandler(function);改变警告处理方式。@H_502_1@
DWREngine.setPreHook(function);//调用dwr方法之前。@H_502_1@
DWREngine.setPostHook(function);//调用dwr方法后@H_502_1@
util.js功能@H_502_1@
包含一些工具函数。@H_502_1@
DWRUtil.getValue[s]()@H_502_1@
DWRUtil.setValue[s]()@H_502_1@
DWRUtil.addRows()@H_502_1@
DWRUtil.removeAllRows()@H_502_1@
DWRUtil.addOptions()@H_502_1@
DWRUtil.removeAllOptions()@H_502_1@
dwr错误和异常处理@H_502_1@
function eh(msg) {@H_502_1@
alert(msg);@H_502_1@
DWREngine.setErrorHandler(eh);@H_502_1@
Remote.getData(function(data){alert(data)});@H_502_1@

猜你在找的Ajax相关文章