dwr.xml 我的简单使用说明

dwr.xml 主要分为三个部份,结构如下图:不过我们主要是以第二部份为主,其它的我也不了解。

第二部份的中create 的主要的组织如下:

<allow>

   <create creator="..." javascript="..." scope="...">

     <param name="..." value="..." />

     <auth method="..." role="..." />

     <exclude method="..." />

     <include method="..." />

    </create> ... </allow>

其中creator我主要是用Spring 或是new,如果和SPRING 整合的话,那就用Spring。

   new:Java用“new”关键字创造对象

 当然也可以填其它的关键字,但是我没有用,所以也就没有去看,抱歉。

 

javascript属性
(在浏览器里给你创建的对象命名),也就是在客户端创建一个这样的JS文件,也会创建一个文件的对象。在JSP页面中要经常用到这样的一个名称。

 

scope选项是可选的,默认为page,我一般不去修改。

 

Param  属性主要还是以下面的例子为主,name为 class ,value为具体的类。目前我只用到这一种。

 

<param name="class" value="com.example.XXX" />

 如果是spring结合的话,那么就会变成这个样子的了。

<param name="beanName" value="bean_name  在SPRING 配制文件中的bean的名"/>

<exclude method="..." />

 <include method="..." />

允许一个创造器去限制进入类的方法。一个创造器必须指定include列表或exclude列表之一

只可以选择一个来填充,不过include   是说外界可以访问的方法,而exclude 就是不给访问的方法。

 

第二部份中convert 有关的内容 。

convert主要是是关于javabean类的定义。有关于方法返回的转换器(是Bean 和 Object 转换器)

<convert converter="bean" match="your.full.package.XXX 类的名字>

      <param name="include/exclude" value=xx,yy,zz,填充的内容是用于javabean的属性></param>

</convert>

 

 

这一部份的内容主要是有关方法返回的值 的转换。

 

 

 

以下是有关于使用的有关情况:

DWR根据dwr.xml生成和Java代码类似的Javascript代码。 相对而言Java同步调用,创建与Java代码匹配的Ajax远程调用接口的最大挑战来至与实现Ajax的异步调用特性。 DWR通过引入回调函数来解决这个问题,当结果被返回时,DWR会调用这个函数。

 

以下是一个简单的例子:

假设你有一个这样的Java方法:

public class Remote { public String getData(int index) { ... } }
我们可以在Javascript中这样使用:

<script type='text/javascript' src='[WEBAPP]/dwr/engine.js'>

</script>

  <script type='text/javascript' src='[WEBAPP]/dwr/interface/Remote.js'>

</script>

<script type="text/javascript">

//str就是getData(42)返回的结果。再把这个结果在回调函数中体现出来。

     Remote.getData(42, handleGetData);

      function handleGetData(str) { alert(str); }

</script>

 

42是Java方法getData()的一个参数。 此外你也可以使用这种减缩格式: Remote.getData(42, function(str) { alert(str); });

 

最后一个部份是有关于util.js的有关内容的使用。但是/ engine.js的有关内容的使用的,这里不解释,个人也没有去看

 

大略上的讲: $ = document.getElementById。 因为在Ajax程序中,你会需要写很多这样的语句,所以使用 $() 会更简洁。

 

如果你希望在你更新了select以后,它仍然保持运来的选择,你要像下面这样做:

 var sel = DWRUtil.getValue(id);

DWRUtil.removeAllOptions(id);

 DWRUtil.addOptions(id, ...);

 DWRUtil.setValue(id, sel);

 

DWRUtil.addOptions有5种模式
 数组: DWRUtil.addOptions(selectid, array) 会创建一堆option,每个option的文字和值都是数组元素中的值。
 对象数组 (指定text): DWRUtil.addOptions(selectid, data, prop) 用每个数组元素创造一个option,option的值和文字都是在prop中指定的对象的属性。
 对象数组 (指定text和value值): DWRUtil.addOptions(selectid, array, valueprop, textprop) 用每个数组元素创造一个option,option的值是对象的valueprop属性,option的文字是对象的textprop属性。
 对象: DWRUtil.addOptions(selectid, map, reverse)用每个属性创建一个option。对象属性名用来作为option的值,对象属性值用来作为属性的文字,这听上去有些不对。但是事实上却是正确的方式。如果reverse参数被设置为true,那么对象属性值用来作为选项的值。
 对象的Map: DWRUtil.addOptions(selectid, map, valueprop, textprop) 用map中的每一个对象创建一个option。用对象的valueprop属性做为option的value,用对象的textprop属性做为option的文字。
 ol 或 ul 列表: DWRUtil.addOptions(ulid, array) 用数组中的元素创建一堆li元素,他们的innerHTML是数组元素中的值。这种模式可以用来创建ul和ol列表。

 

以上是个人理解 和部份查阅,要是有错的,请见谅。 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值