DWR框架详解:简化Ajax开发与自动补全实现
需积分: 0 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开发了。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2009-10-21 上传
2008-10-05 上传
2019-04-09 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
黄子衿
- 粉丝: 20
- 资源: 2万+
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录