`

DWR 之 dwr.xml

    博客分类:
  • DWR
阅读更多

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting
2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
 
<dwr>
  <!-- 仅当需要扩展DWR时才需要 -->
  <init>
    <creator id="..." class="..." />
    <converter id="..." class="..." />
  </init>

<!--

 

这个初始化部分申明被用来创建远程beans 而且这个类能被用来以某种过程转换。

大多数例子你将不需要用它,如果你想去定义一个新的Creator 或者Converter,就要在此被申明。
 
在init部分里有了定义只是告诉DWR这些扩展类的存在,给出了如何使用的信息。这时他们还没有被使
用。这种方式很像Java中的import语句。多数类需要在使用前先import一下,但是只有import 语句并不
表明这个类已经被使用了。每一个creator 和converter都用id属性,以便后面使用。 

 

再说明白点就是:

让DWR知道通过XMLHttpRequest对象,什么对象将会接收请求

下面这种写法是把该类让JS看到,但是只是可以用其中指定的两个函数,相应函数用<include>标签来指定

 

 

   <create creator="new" javascript="ApartmentDAO" class="dwr.sample.ApartmentDAO">
  <include method="findApartments"/>
  <include method="countApartments"/>
  </create>

-->

 

  <!-- 没有它DWR什么也做不了 -->
  <allow>
    <create creator="..." javascript="..." />
    <convert converter="..." match="..." />
  </allow>
 

<!--

      allow部分定义了DWR能够创建和转换的类。

 

      每一个在类中被调用的方法需要一个<create  >有若干类型的creator

      使用“new”关键字或者Spring 框架等。

 

<allow>
  <create creator="..." javascript="..." scope="...">
    <param name="..." value="..." />
    <auth method="..." role="..." />
    <exclude method="..." />
    <include method="..." />
  </create>
  ...
</allow>

 

 

creator 属性
1).new:Java 用“new”关键字创造对象
是DWR默认的creator,如下所示
<create id="new"  class="org.directwebremoting.create.NewCreator"/>
没有必要把它加入dwr.xml,它已经在DWR内部文件了。
这个creator将使用默认构造器创建类的实例,以下是用new创建器的好处
  安全:DWR创造的对象生存的时间越短,多次调用中间的值不一致的错误机会越少。 
  内存消耗低: 如果你的站点用户量非常大,这个创造器可以减少VM 的内存溢出。

 

2).none: 它不创建对象,看下面的原因。 (v1.1+)
none创建器不创建任何对象,它会假设你不须要创建对象。有2个使用的原因:
    你可能在使用的scope不是"page"(看上面),并在在前面已经把这个对象创建到这个scope中了,
这时你就不需要再创建对象了。     还有一种情况是要调用的方法是静态的,这时也不需要创建对象。DWR 会在调用创建器之前先检
查一下这个方法是不是静态的。
 
对于上诉两种情况,你仍然需要class参数,用来告诉DWR它是在操作的对象类型是什么。

 

3). scripted: 通过BSF使用脚本语言创建对象,例如BeanShell或Groovy。
要使用这个创造器,你需要把一些辅助库放到WEB-INF/lib文件夹下:比如BSF的 jar包 ,你要用
的脚本 jar包 。

 

new创造器在 DWR中已经默认声明了:
<creator id="script" class="uk.ltd.getahead.dwr.create.ScriptedCreator"/>
这个创造器用BSF来执行脚本 Bean,例如:

 

new创造器在 DWR中已经默认声明了:
<creator id="script" class="uk.ltd.getahead.dwr.create.ScriptedCreator"/>
这个创造器用BSF来执行脚本得到 Bean,例如:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-->

 

 


  <!-- 有必要告诉DWR方法签名 -->
  <signatures>...</signatures>

</dwr>

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics