您的位置:首页 > 其它

DWR配置文件解析

2014-06-08 07:05 267 查看
<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
    "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<!-- 整个配置文件的大体结构如下: -->
<dwr>
  <!-- 
     <init> 部分声明那些用于建立远程bean和在方法调用中转换bean的类.这部分是可选择性配置的,
             如果你想定义一个新的creator(创造器)或者converter(转换器),那么就必须在部分中声明,
             每个creator和converter需要有个id属性来允许以后进行引用。
   -->
  <init>
    <creator id="..." class="..."/>
    <converter id="..." class="..."/>
  </init>
  <!-- <allow>部分定义了DWR能够创建和转换的类,以供javascript访问 -->
  <allow>
  <!-- 
      <create>标签中指定 javascript 中可以访问的 java 类,并定义 dwr 应当如何获得要进行远程的类的实例。
      (1) javascript="testClass" 属性指定 javascript 代码访问对象时使用的名称。
      (2) creator是类构造器,creator="new" 属性指定 java 类实例的生成方式, new意味着 DWR 应当调用类的
          默认构造函数来获得实例,其他的还有 spring 方式,通过与 IOC 容器 Spring 进行集成来获得实例等等。 
          默认情况下DWR1.1有8种创造器。它们是:
                new: 用Java的new关键字创造对象。
                none: 它不创建对象。 (v1.1+)
                spring: 通过Spring框架访问Bean。
                jsf: 使用JSF的Bean。 (v1.1+)
                struts: 使用Struts的FormBean。 (v1.1+)
       (3) 还有一个属性为scope,默认为page.其值还有application、session、request、script。
   -->
    <create creator="..." javascript="..." scope="...">
      <!-- 
         <creator>下的配置节点:
              <param> 标签指定要公开给 javascript 的 java 类名。
              <include> 标签指定要公开给 javascript 的方法。不指定的话就公开所有方法。
              <exclude> 标签指定要防止被访问的方法。
              <auth> 标签指定一个J2EE角色作为访问控制检查。
       -->
      <param name="..." value="..."/>
    </create>
    <!-- 
       <convert> 标签由于dwr只支持json的数据格式,因此在dwr中我们要读取javaBean中的属性,
                   就必须将其转换成json的数据格式
     -->
    <convert convertor="..." match="..."/>
  </allow>
  <signatures>
    ...
  </signatures>
</dwr>
DWR已经默认定义和初始化了常用的Converter,他们分别如下:
<converter id="null"  
    class="uk.ltd.getahead.dwr.convert.NullConverter"/>  
<converter id="primitive"  
    class="uk.ltd.getahead.dwr.convert.PrimitiveConverter"/>  
<converter id="bignumber"  
    class="uk.ltd.getahead.dwr.convert.BigNumberConverter"/>  
<converter id="string"  
    class="uk.ltd.getahead.dwr.convert.StringConverter"/>  
<converter id="date"  
    class="uk.ltd.getahead.dwr.convert.DateConverter"/>  
<converter id="array"  
    class="uk.ltd.getahead.dwr.convert.ArrayConverter"/>  
<converter id="map"  
    class="uk.ltd.getahead.dwr.convert.MapConverter"/>  
<converter id="collection"  
    class="uk.ltd.getahead.dwr.convert.CollectionConverter"/>  
<converter id="bean"  
    class="uk.ltd.getahead.dwr.convert.BeanConverter"/>  
<converter id="hibernate"  
    class="uk.ltd.getahead.dwr.convert.HibernateBeanConverter"/>  
<converter id="dom"  
    class="uk.ltd.getahead.dwr.convert.DOMConverter"/>  
<converter id="dom4j"  
    class="uk.ltd.getahead.dwr.convert.DOM4JConverter"/>  
<converter id="jdom"  
    class="uk.ltd.getahead.dwr.convert.JDOMConverter"/>  
<converter id="xom"  
    class="uk.ltd.getahead.dwr.convert.XOMConverter"/>  
<converter id="servlet" class="uk.ltd.getahead.dwr.convert.ServletConverter"/>
如果List、Set或Map中的类型均为简单类型(包括其封装类)或String、Date、数组和集合类型、则不需要<convert>标签。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: