创造器的格式
<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;