DWR框架详解:简化Ajax开发与自动补全实现

需积分: 0 1 下载量 15 浏览量 更新于2024-08-18 收藏 1.02MB PPT 举报
"dwrxml详解-DWR案例,讲解" DWR(Direct Web Remoting)是一个开源的Java Ajax框架,它的主要功能是使客户端JavaScript能够直接调用服务器端的Java方法,从而简化Ajax开发。在DWR中,配置文件dwr.xml起到了关键作用,它定义了哪些Java类和方法可以被远程调用以及数据类型转换规则。 在dwr.xml文件中,有三个主要的元素: 1. `<allow>`元素:这是dwr.xml中最核心的部分,它定义了DWR能够创建和转换的类。通过`<allow>`元素,你可以指定哪些Java类可以被远程访问。例如,你可以这样设置: ```xml <allow> <create id="myBean" class="com.example.MyBean"> <include method="getSomeData"/> <exclude method="*"/> </create> </allow> ``` 在这个例子中,`MyBean`类的`getSomeData`方法可以被远程调用,而其他所有方法则被排除在外。 2. `<create>`元素:创建器定义了如何将Java类转换成JavaScript对象。在上面的示例中,`<create>`元素指定了`MyBean`类,并可以设置哪些方法是公开的。`id`属性是JavaScript中的对象名称,`class`属性是Java类的全限定名。 3. `<convert>`元素:类型转换器用于定义Java类型和JavaScript类型之间的映射关系。这确保了服务器端的数据能正确地在客户端呈现。例如,如果你有一个自定义的Java类需要转换,你可以这样做: ```xml <convert converter="bean" match="com.example.MyCustomClass"/> ``` 这里,`converter`属性指定了转换器,`match`属性则是需要转换的类的全限定名。 DWR框架简化了Ajax开发,因为它消除了手动编写XMLHttpRequest和JSON序列化/反序列化的繁琐工作。通过DWR,你可以直接在JavaScript中调用Java方法,就像它们是本地函数一样。例如: ```javascript DWREngine.setConfig({debug: true}); var myBean = DWRUtil.create('myBean'); myBean.getSomeData(function(data) { // 处理返回的数据 }); ``` 在这个例子中,`myBean`是服务器端`MyBean`对象的一个代理,`getSomeData`方法的调用会触发Ajax请求,当服务器返回数据时,回调函数会被执行。 DWR还支持自动补全功能,这对于构建用户友好的交互式Web应用非常有用。例如,你可以在搜索框中实现自动建议功能,只需在Java端提供一个返回匹配结果的方法,然后在JavaScript端调用即可。 在选择Ajax框架时,DWR的优势在于其简单性和直接性。Prototype和jQuery是纯JavaScript库,它们提供了对Ajax的支持,但需要手动处理Ajax请求和响应。Dojo是一个全面的JavaScript工具包,包含许多功能,包括Ajax。而AjaxTags则提供了一系列JSP标签来封装常见的Ajax场景。相比之下,DWR专门针对Java开发,使得Java方法可以直接在JavaScript中调用,减少了代码量,提高了开发效率,同时也解决了浏览器兼容性问题。 为了使用DWR,你需要首先从官方站点下载所需文件,通常包括dwr.jar和相关的依赖库。然后,将dwr.jar添加到项目的WEB-INF/lib目录,并在web.xml中配置DWR的核心Servlet。配置完成后,你就可以开始在项目中使用DWR进行Ajax开发了。