DWR和WebWork整和

xiaoxiao2026-04-13  5

 WebWork/Struts 2

DWR也提供与OpenSymphony(www.opensymphony.com/webwork)所开发的WebWork框架的集成。借助于这种支持,可以远程访问自己的WebWork Actions,就像任何其他类一样。

请注意,WebWork现在已经成为Struts 2,并且从根本上看,这种集成应该是相同的(尽管现在xwork.xml指向struts.xml,但还是存在其他一些细微的差别)。

使用DWR的这种特性需要两步,但是没有一个步骤与以前看到的方法差别很大。首先,需要在web.xml文件中创建一些新的条目,类似于:

 

这使得DWR可以处理所涉及的多种对象类型。同样,如果自己的Action调用返回Action实例,而不是更典型的纯文本,则还需要在dwr.xml文件中添加一条配置信息:

 

match属性的值是会被返回的Action实例。

一旦完成上述配置,就需要把常见的DWR JavaScript代码导入到执行Actions的JSP文件中。除此之外,还需要导入DWRActionUtil.js文件,它是需要与WebWork Actions一起工作的帮助代码。

调用Action非常类似于调用其他任何远程类,差别是它通过DWRActionUtil对象实现,如下所示:

 

这个调用的参数说明如下。

id。这个参数可能是Action URL,通常使用.action扩展名。也可能是一个action- DefinitionObject JavaScript对象。在这种情况下,这个对象必须指定如下域:namespace(xwork.xml文件中Action的命名空间)、action(xwork.xml文件中Action的名字)、executeResult(可能是true或者false,说明如果方法调用返回一个Action实例,是直接返回这个实例,还是执行这个实例)。

params。如果不需要传递参数,这是一个空对象{}。这个参数也可能是一个域的ID(其值会被传递给Action调用);也可能是一个表单的ID,这时候这个表单的所有值都会被传递。请注意,如果xwork.xml文件中的配置使用ParameterInterceptor,那么Action会完全使用传入值进行初始化,好像通过WebWork被调用一样。

callback。这是DWR中到处可见的回调函数。

转载请注明原文地址: https://www.6miu.com/read-5047313.html

最新回复(0)