日期:2014-05-16  浏览次数:20447 次

DWRUtil.js包的应用分
先简单介绍一下什么是DWR

DWR - Direct Web Remoting

ajax是一种提高web站点吸引力和实用性的书写web页面的方法。它从服务器端更新web页面的特殊区域,从而增强用户的交互性。它允许信息在短时间的延迟或不用刷新页面的情况下更新。

DWR减少了开发时间,也减少了一些可能的错误,这些错误是在提供常用的方法函数并消除一些与高交互性 web站点有关的重复性代码的时候产生的。

DWR是作为开源软件(ASL verssion 2.0)而可以免费得到的。它凭借它的广阔的库、例子和指南非常易于实现。把它结合到一个现有的站点是非常简单的,同样它也可以简单地与大多数java框架结合。

util.js
util.js包含了一些使用的方法,从而帮助你利用javascript(可能)从服务器端更新你的web数据。

你可以在DWR之外的地方使用它,因为它并不依赖与DWR而实现。

它包含四个页面处理函数:

1 getText()作用于select lists。
2 getValue[s]()、setValue[s]()作用于除tables、lists和images以外的大多数html元素。
3 addRows()和removeAllRows()用于编辑tables。
4 addOptions()和removeAllOptions()用于编辑lists(如:select lists、ul、ol)。
$() :

$函数(在javascript中,他的名字是合法的)的思想是从prototype引进的。一般说来,$ = document.getElementById。在以后你花大量时间进行ajax编程的时候,在合适的地方使用这种格式是很有益的。

'$'通过给定的ID在当前HTML页面找到元素,如果多于一个的参数被提交,它就会返回一个包含已找到元素的数组。这个函数从prototype的library中得到的灵感,而且,它还能更好的工作在不同的浏览器中。

一  :Generating Lists

DWR的一个功能可以给一个下拉列表(select list)添加选项,只需使用

1  DWRUtil.addOptions()
如果你在更新列表之前,希望保留一些选项,你需要写以下一些代码:

1  var sel  =  DWRUtil.getValue(id);
2 DWRUtil.removeAllOptions(id);
3 DWRUtil.addOptions(id, );
4 DWRUtil.setValue(id, sel);
如果你想有个初始化选项,如:“please select”,你可以直接使用:    

1  DWRUtil.addOptions(id, [ " Please select " ]);
二 :DWRUtil.addOptions 有5种调用方法:

1 :Array: DWRUtil.addOptions(selectid, array) 。selectid为目标ID,array为每一项的text。

2 :Array of objects (option text = option value):
      DWRUtil.addOptions(selectid, data, prop) 用text和value的集合来为每一个数组元素创建一个选项,
      pro参数指定text和value的值。

3:Array of objects (with differing option text and value):
      DWRUtil.addOptions(selectid, array, valueprop, textprop) 用text和value的集合来为每一个数组元素创建一个选项,
      valueprop确定value,textprop确定text。

4:Object: DWRUtil.addOptions(selectid, map, reverse) 为map中每一个属性(property)创建一个选项,
      属性名作为选项的value,属性的value作为选项的text。这样做看起来是错的,但实际上这种做法的确是正确的。
      如果reverse参数被设置为true,则属性的value还是被用做选项的value。

5:Map of objects: DWRUtil.addOptions(selectid, map, valueprop, textprop) 为map中的每一个对象创建一个选项,
      valueprop指定选项的value,textprop指定选项的text。

三 :Generating Tables

DWRUtil.addRows() 从一个数组(第二个参数)取得值,创建table的每一行。从另一个数组(第三个参数)去得值,为table的每一行创建若干列。

四 :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()一样,只是它传入的是一个包含名字和数值的javascript对象.这个名字就是HTML元素的ID。这个方法不会返回任何对象,它只会将ID的value映射给传入的value。例:

1   function doGetValues()   {
2       var text =   " {
3        div: null ,
4       textarea: null ,
5       select: null ,
6       text: null ,
7       password: null ,
8       formbutton: null ,
9       button: null
10 } " ;
11 
12   // javascript对象
13  var object  =  objectEval(text);