dwr学习文档(4)

2019-04-23 13:11

DWR对于Spring没有运行期依赖,所以如果你不使用Spring那么Spring的支持不会产生任何影响到。

The SpringCreator

这个创造器会查找spring的中配置的Bean,用Spring去创建它们。如果你已经在使用Spring,那么这个创造器会非常有用。

你可以通过下面的方式来创建远程调用的Bean: ...

寻找你的Spring配置

有三种方式寻找配置文件: ContextLoaderListener

最简单的方式是使用org.springframework.web.context.ContextLoaderListener。你不必使用所有的Spring-MVC功能,只需要这个Listener就够了,所以这是个不错的方案。你需要在WEB-INF/web.xml中做如下配置:

contextConfigLocation /WEB-INF/classes/beans.xml

org.springframework.web.context.ContextLoaderListener

我能找到的ContextLoaderListener的最好的文档就是javadoc。如果你知道还有更好的文档,请告知我。 Rob Sanheim 指出还有一个能深入了解ContextLoaderListener的文档。

使用location*参数

如果你要在dwr.xml中指定使用哪些bean,你可以使用location*参数。你可以指定任意多个文件,只要参数以location开始并且唯一即可。例如:location-1, location-2。这些location被用做Spring的ClassPathXmlApplicationContext的参数: ...

直接设置BeanFactory

SpringCreator有一个静态方法 setOverrideBeanFactory(BeanFactory) 用来通过编程的方式直接设置BeanFactory。 配置DWR和Spring

Bram Smeets写了一个有意思的blog,教你配置DWR使用beans.xml代替WEB-INF/web.xml。

我也对于如何在beans.xml中指定dwr.xml很感兴趣,尽管这看上去有些Spring传染病的感觉。有人知道如何实现吗?请加入邮件列表并告诉大家。

? ?

jsf: 使用JSF的Bean。 (v1.1+)

JSF 整合

DWR包括两个JSF的扩展点,一个创造器和一个ServletFilter。 'jsf'创造器

DWR1.1中有一个体验版的JsfCreator。你可以哉dwr.xml中这样使用: ...

...

这将允许你通过DWR调用ManagedBean。 The Servlet Filter

DWR/Faces 过滤器允许你不在JSF的生命周期里调用FacesContext中的Bean。 要使用JsfCreator,你应该把DWR/Faces过滤器加到web.xml中。

DwrFacesFilter

uk.ltd.getahead.dwr.servlet.FacesExtensionFilter

DwrFacesFilter /dwr/*

这两个需要放在web.xml中与其他的filter和filter-mapping放在一起。

? ?

struts: 使用Struts的FormBean。 (v1.1+)

整合Struts

DWR几乎可以和任何Framework一起工作。这个网站(DWR的官方网站)就是这一点的有力证明,因为它是在Drupal(PHP)中使用DWR。

DWR和Struts整合有两个层次。最基础的层次就是同时使用两个Framework,这是非常容易的,但是这样就不允许在DWR和Struts之间共享Action了。

DWR可以调用任何方法,所以没有理由不让你从DWR调用Struts的Action,除非你不想这样用。ActionForm的内容是什么,当返回ActionForward时DWR怎么做?

一个比较好方法是重构你想调用的Action,提取出Action的逻辑。DWR和你的Action就可以同时调用相同的方法了。 The 'struts' 创造器

DWR1.1增加了一个StrutsCreator。你可以哉dwr.xml中这样使用: ...

...

这样就允许你在DWR中调用FormBean了。

开始顺序

如果你要使用StrutsCreator那么你保证Struts在DWR之前被初始化。你可以在web.xml中把Struts的设置的比DWR低。

? ?

pageflow: 访问Beehive或Weblogic的PageFlow。 (v1.1+)

如果你需要写自己的创造器,你必须在init部分注册它。

javascript属性 用于指定浏览器中这个被创造出来的对象的名字。你不能使用Javascript的关键字。

scope属性 非常类似servlet规范中的scope。 它允许你指定这个bean在什么生命范围。选项有\和\。这些值对于Servlet和JSP开发者来说应该相当熟悉了。

scope属性是可选的。默认是\。如果要使用\需要cookies。当前的DWR不支持ULR重写。

param元素 被用来指定创造器的其他参数,每种构造器各有不同。例如,\创造器需要知道要创建的对象类型是什么。每一个创造器的参数在各自的文档中能找到。请查看上面的链接。

include和exclude元素 允许创造器来限制类中方法的访问。一个创造器必须指定include列表或exclude列表之一。如果是include列表则暗示默认的访问策略是\拒绝\;如果是exclude列表则暗示默认的访问策略是\允许\。

例如要拒绝防范除了setWibble()以外的所有方法,你应该把如下内容添加到dwr.xml中。

对于加入到create元素中的类的所有方法都是默认可见的。 auth元素 允许你指定一个J2EE的角色作为将来的访问控制检查: 'none' 创造器

'none' 创造器不创建任何对象 - 它会假设你不需要创建对象。这有可能是对的,有两个原因。

你可能在使用的scope不是\看上面),并在在前面已经把这个对象创建到这个scope中了,这时你就不需要再创建对象了。

还有一种情况是要调用的方法是静态的,这时也不需要创建对象。DWR会在调用创建器之前先检查一下这个方法是不是静态的。

对于上诉两种情况,你仍然需要class参数,用来告诉DWR它是在操作的对象类型是什么。 使用静态方法

DWR会在调用创建器之前先检查一下这个方法是不是静态的,如果是那么创造器不会被调用。很显然这个逻辑适用于所有创造器,尽管如此\创造器是最容易配置的。 适用单例类

对于单例类的创建,最好适用BeanShell和BSF来实例化对象。详细信息参见'Scripted'创造器 其他创造器

我么偶尔也需要一些新的创造器,最常见的是一个EjbCreator。讨论新的创造器的好地方是在邮件列表。


dwr学习文档(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:02增值税法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: