DWR(四):创建器

创造器的格式

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

 属性介绍:

creator : 指定创建实例所使用的创建器;

javascript : 指定Java对象创换成JavaScript后的对象名称;

scope : 

<exclude method=". . ."/> : 黑名单,暴露给JavaScript方法不包括 method=". . ."中的参数;

<include method=". . ."/> : 白名单,暴露给JavaScript方法仅包括 method=". . ."中的参数;

 <create />标签的 creator 属性:指定创建实例所使用的创建器;

Dwr默认情况下提供的创建器的类型

--new :

 该创建器使用new关键字创建Java实例。   

<create creator="new" javascript="AdminManager">
      <param name="class" value="com.devan.test.admin.AdminManager"/>
 </create>

Dwr将是用无参的构造器创建com.devan.test.admin.AdminManager实例,并将实例暴露给客户端JavaScript代码。com.devan.test.admin.AdminManager实例转换成了名字为AdminManager的JavaScript对象。这样我们就可以是客户端调用com.devan.test.admin.AdminManager中的方法;

--none :

不创建任何对象。(该创建器本人没明白到底怎么使用)

应用情况:

①:如果使用的对象不是来自当前的page.而是来自session或是application,这个对象可能已经存在了,那么无需再次创建各个对象。

②:如果别调用的Java方法是静态的方法,调用静态方法是无需创建对象实例的,所以此时也无创建对象。Dwr会在调用创建器之间检查一下这个方法是否是静态的。

使用none创建器是,仍然需要<param.../>子元素,并且<param.../>子元素的class属性、value属性是不可缺少的,通过这两个属性来指定Dwr的操作对象的类型。

--scripted  :

使用脚本语言,如BeanShell或Groovy通过BSF(Bean Scripting Framework)创建实例;

例如:(本人没搞明白)

<!-- 使用BSF来创建Java实例 -->
    <create creator="script" javascript="EmailValidator">
       <!-- 指定动态语言的类型 -->
      <param name="language" value="beanshell"/>
      <!-- 指定Java对象的脚本 -->
      <param name="script">
          import org.apache.commons.validator.EmailValidator;
          return EmailValidator.getInstance();
      </param>
    </create>

 

--spring :

直接使用Spring容器中的Bean,用于Dwr与Spring的整合;

--jsf :

直接使用JSF容器中的Bean,用于Dwr与JSF的整合;

--struts :

直接使用struts容器中的Bean,用于Dwr与struts的整合;

--pageflow :

直接访问Weblogic或是Beenhive的PageFlow;

原文地址:https://www.cnblogs.com/devan/p/5260920.html