`
学会做人
  • 浏览: 121164 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Dwr框架的DWRUtil的理解

阅读更多
util.js
util.js包含了一些使用的方法,从而帮助你利用j avascript(可能)从服务器端更新你的web数据。
你可以在DWR之外的地方使用它,因为它并不依赖与DWR而实现。
它包含四个页面处理函数:getValue[s]()、setValue[s]()作用于除tables、lists和images以外的大多数html元素。getText()作用于select lists。
addRows()和removeAllRows()用于编辑tables。addOptions()和removeAllOptions()用于编辑lists(如:select lists、ul、ol)。


$()
$函数(在j avascript中,他的名字是合法的)的思想是从prototype引进的。一般说来,$ = document.getElementById。在以后你花大量时间进行ajax编程的时候,在合适的地方使用这种格式是很有益的。
'$'通过给定的ID在当前HTML页面找到元素,如果多于一个的参数被提交,它就会返回一个包含已找到元素的数组。这个函数从prototype的library中得到的灵感,而且,它还能更好的工作在不同的浏览器中。


Generating Lists
DWR的一个功能可以给一个下拉列表(select list)添加选项,只需使用DWRUtil.addOptions()。
如果你在更新列表之前,希望保留一些选项,你需要写以下一些代码:
var sel = DWRUtil.getValue(id);
DWRUtil.removeAllOptions(id);
DWRUtil.addOptions(id, ...);
DWRUtil.setValue(id, sel);
如果你想有个初始化选项,如:“please select”,你可以直接使用:
DWRUtil.addOptions(id, ["Please select"]);
DWRUtil.addOptions 有5种调用方法:Array: DWRUtil.addOptions(selectid, array) 。selectid为目标ID,array为每一项的text。
Array of objects (option text = option value): DWRUtil.addOptions(selectid, data, prop) 用text和value的集合来为每一个数组元素创建一个选项,pro参数指定text和value的值。
Array of objects (with differing option text and value): DWRUtil.addOptions(selectid, array, valueprop, textprop) 用text和value的集合来为每一个数组元素创建一个选项,valueprop确定value,textprop确定text。
Object: DWRUtil.addOptions(selectid, map, reverse) 为map中每一个属性(property)创建一个选项,属性名作为选项的value,属性的value作为选项的text。这样做看起来是错的,但实际上这种做法的确是正确的。如果reverse参数被设置为true,则属性的value还是被用做选项的value。
Map of objects: DWRUtil.addOptions(selectid, map, valueprop, textprop) 为map中的每一个对象创建一个选项,valueprop指定选项的value,textprop指定选项的text。


Generating Tables
DWRUtil.addRows() 从一个数组(第二个参数)取得值,创建table的每一行。从另一个数组(第三个参数)去得值,为table的每一行创建若干列。
DWRUtil.addRows()的用法:
DWRUtil.addRows(”items”,items,cellFunctions);
第一个items,应该是table的id,第2个items,是远程返回的结果集,cellFunctions,对表格行填充的回调函数一类的。
var cellFunctions = [ function(item) { return item.name; },
function(item) { return item.description; },
function(item) { return item.formattedPrice; },
function(item) { var btn = document.createElement(”button”); btn.innerHTML = “Add to cart”; btn.itemId = item.id; btn.onclick = addToCartButtonHandler; return btn; }
应该是一个function(item)就代表一列,return的就是传入的结果集的某列的内容。那么这个表格就应该有4列。最后一列是静态的html代码了。不过没研究一下,return回去动静混合的内容,就是一个字串会如何。我猜应该也可以吧。

DWRUtil.getText(id)
可以根据id取得text的值,这个方法只能用于select list
DWRUtil.getValue(id)
可以根据id取得value,使用这个方法,你不必在意div和select list的不同。
DWRUtil.getValues()
getValues() is similar to getValue() except that the input is a Javascript object that contains name/value pairs. The names are assumed to be the IDs of HTML elements, and the values are altered to reflect the contents of those IDs. This method does not return the object in question, it alters the value that you pass to it.
这个方法和getValue()一样,只是它传入的是一个包含名字和数值的j avascript对象.这个名字就是HTML元素的ID。这个方法不会返回任何对象,它只会将ID的value映射给传入的value。例:
function doGetValues() {
var text= "{
div:null,
textarea:null,
select:null,
text:null,
password:null,
formbutton:null,
button:null
}";
var object = objectEval(text); //j avascript对象
DWRUtil.getValues(object);
var reply = DWRUtil.toDescriptiveString(object, 2); //toString
reply = reply.replace(/n/g, "<br/>"); //转意
DWRUtil.setValue("getvaluesret", reply); //显示
}


DWRUtil.onReturn
贴一段代码,暂时不理解,用onReturn和不用有什么区别
<script>
function submitFunction()
{
$("alert").style.display = "inline";
setTimeout("unsubmitFunction();", 1000);
}
function unsubmitFunction()
{
$("alert").style.display = "none";
}
</script>
<p><input type="text" onkeydown="DWRUtil.onReturn(event, submitFunction)"/>
<input type="button" onclick="submitFunction()" value="GO"/>
<span id="alert" style="display:none; background:#FFFFDD; font-weight:bold;">submitFunction called</span>
</p>


DWRUtil.selectRange
在一个input box里选一个范围
DWRUtil.selectRange("sel-test", $("start").value, $("end").value);
DWRUtil.setValue(id, value)
用ID找到元素,并更新value
DWRUtil.setValues()
和setValue(id,value)一样,只是它需要的参数是个j avascript对象,如:
DWRUtil.setValues({
div: "new div content",
password: "1234567890"
});


DWRUtil.toDescriptiveString
带debug信息的toString,第一个为将要debug的对象,第二个参数为处理等级。等级如下:
0: Single line of debug 单行调试
1: Multi-line debug that does not dig into child objects 不分析子元素的多行调试
2: Multi-line debug that digs into the 2nd layer of child objects 最多分析到第二层子元素的多行调试
And so on. Level 2 and greater probably produce too much output.
总结:DWR不但屏蔽了许多client与server交互的重复且复杂的代码,而且还提供了一些常用的方法,一些思想还是从prototype继承而来,并有一定的改进。同时,它也考虑到了与struts、hibernate、spring的结合问题。
需要注意的是,DWR是一种把服务器端的java代码通过j avascript直接从浏览器调用的方法(DWR is a way of calling Java code on the server directly from Javascript in the browser.),而不是一个j avascript的库

分享到:
评论

相关推荐

    dwr框架依赖包及实例

    这个压缩包文件包含了DWR框架所需的依赖包以及可能的示例代码,帮助开发者快速理解和使用DWR。 在使用DWR框架时,有几个关键知识点是必须掌握的: 1. **DWR的基本概念**: - **AJAX(Asynchronous JavaScript and...

    DWR 框架实例+说明

    下面将详细解释DWR框架的关键概念和技术: 1. **远程方法调用(Remote Method Invocation, RMI)**:DWR的核心特性是支持JavaScript直接调用服务器上的Java方法,就像调用本地函数一样。这使得开发者能够构建更富...

    DWRUtil.rar_DWRUtil_dwr

    DWRUtil是DWR框架中的一个实用工具类,提供了一系列方便开发者使用的函数,简化了JavaScript和服务器端数据交互的过程。这个压缩包"DWRUtil.rar"包含了"DWRUtil_dwr"相关的文件,特别是"DWRUtil.txt",这可能是一个...

    DWR框架相关的一些资料

    下面将详细探讨DWR框架的相关知识点。 一、DWR的基本概念和原理 DWR的核心思想是通过JavaScript Remoting技术,在客户端和服务器之间建立直接通信的桥梁。它使用HTTP协议,绕过传统的HTTP请求-响应模型,让...

    dwr框架实现下拉框的连动

    在本主题中,“dwr框架实现下拉框的连动”涉及到的是如何使用DWR来实现在网页中两个或多个下拉框之间的联动效果,即当用户在一个下拉框中选择一个选项时,另一个下拉框的内容会根据所选选项自动更新。 一、DWR框架...

    AJAX_DWR框架(二级联动+PPT实例代码)

    **AJAX_DWR框架:二级联动与PPT实例代码详解** AJAX (Asynchronous JavaScript and XML) 是一种在不刷新整个网页的情况下,实现页面部分更新的技术。DWR (Direct Web Remoting) 是一个开放源码的Java库,它使得在...

    dwr框架的源代码示例ajax

    总的来说,DWR框架通过简化Ajax通信,让开发者可以更专注于业务逻辑,而不是底层的网络通信细节。这个示例将帮助你理解如何配置DWR,使其与Spring协同工作,以及如何处理集合类型的参数和返回值。通过深入学习和实践...

    DWR框架基础(实现helloword)

    在“DWR框架基础(实现helloworld)”中,我们将学习如何搭建DWR的基本环境,并通过一个简单的“Hello, World”示例来理解其工作原理。以下是一个详尽的步骤和知识点介绍: 1. **安装与配置**: - **Eclipse集成**...

    ajax之DWR框架包,中文文档,无刷新分页,表单处理及其他

    在标题和描述中,我们看到了几个关键知识点,包括DWR框架、中文文档、无刷新分页、表单处理以及Java方法的调用。 1. **DWR框架**:DWR的核心功能是实现AJAX(Asynchronous JavaScript and XML)通信。它通过在...

    dwr框架实现无刷新

    DWR(Direct Web Remoting)框架是一个开源的Java库,它允许在Web应用程序中实现JavaScript与服务器端Java对象之间的直接通信,从而实现页面的无刷新更新。这种技术极大地提升了用户体验,因为它消除了传统HTTP请求...

    ajax 的dwr框架的一个简单的demo

    这个“ajax的dwr框架的一个简单的demo”是一个示例项目,用于展示如何在Web应用程序中集成DWR以实现异步数据通信。 在Java开发中,DWR提供了方便的API,使得JavaScript可以调用服务器端的Java方法,而无需传统的...

    AJAX框架dwr文档

    这份"RWR文档"(可能是误打,实际上应为"DWR文档")对于初学者来说是一份很好的学习资源,可以帮助理解并掌握DWR框架的核心概念和用法。 DWR的主要特点包括: 1. **远程调用(Remote Calling)**:DWR允许...

    dwr回调函数得到后台list

    Direct Web Remoting (DWR) 是一种在Java服务器和JavaScript之间进行实时通信的技术,它允许在客户端的JavaScript中调用服务器端的Java方法,并将结果返回到...因此,正确理解两者的差异是成功处理DWR回调的关键。

    DWR3.0 jar包API文档

    DWR3.0的JAR包包含了所有必要的类和资源,用于在服务器端集成DWR框架。这个JAR文件通常会包含以下核心组件: 1. **Remoting层**:这是DWR的核心,负责处理客户端JavaScript与服务器端Java之间的通信。它通过AJAX...

    dwr 压缩文件 帮助文档

    DWR压缩文件中的帮助文档旨在为开发者提供详细的指导,帮助他们理解和使用DWR框架。以下是DWR的一些核心知识点: 1. **DWR的基本概念**:DWR的核心功能是实现Ajax(异步JavaScript和XML)通信,它通过创建...

    DWR小代码小例子

    这个"TestDWR"文件很可能是DWR的一个简单示例项目,用于演示如何配置和使用DWR框架。 在DWR的实例中,主要涉及以下几个关键知识点: 1. **DWR的配置**:首先,你需要在Web应用的`web.xml`文件中配置DWR的Servlet,...

    简单DWR动态下拉菜单

    DWR(Direct Web Remoting)是一种JavaScript库,它允许Web...理解并掌握DWR的使用,对于提升Web应用的用户体验具有重要意义。在实际开发中,还可以结合其他前端框架,如jQuery或AngularJS,进一步增强功能和用户体验。

    DWR 技术文章精选

    这个“DWR技术文章精选”压缩包文件包含了关于DWR的相关资料,可能是博客文章、笔记或者教程,帮助我们深入理解DWR的核心特性和使用方法。 1. **DWR 概述**: DWR 是一种AJAX框架,它通过JavaScript与Java进行通信...

    DWR中文文档

    8. **DWR与Spring框架集成**:DWR可以无缝集成到Spring框架中,使得Spring的依赖注入和AOP特性也能在DWR的远程调用中发挥作用。 9. **调试DWR**:DWR提供了一个内置的调试工具——`DWR Debug Console`,它可以帮助...

    第一个DWR HelloWorld例子(附:详细说明)

    在这个"第一个DWR HelloWorld例子"中,我们将深入理解DWR的基本原理和操作流程,通过实践来学习如何搭建一个简单的DWR应用。 1. **DWR的基本概念** DWR的核心思想是创建一个安全的、高效的、易于使用的AJAX框架。...

Global site tag (gtag.js) - Google Analytics