20dwr - DWR 与 WebWork整合

简介: 20dwr - DWR 与 WebWork整合

WebWork 支持在 DWR2.0m3 以后才有。

要可以通过 DWR 调用 WW 的 Action,要做两件事。

配置 dwr.xml

你必须在 dwr 的配置文件中加入这样的配置:

<create creator="none" javascript="DWRAction">
  <param name="class" 
    value="org.directwebremoting.webwork.DWRAction" />
  <include method="execute" />
</create>
<convert converter="bean" match="org.directwebremoting.webwork.ActionDefinition">
    <param name="include" value="namespace,action,method,executeResult" />
</convert>
<convert converter="bean" match="org.directwebremoting.webwork.AjaxResult" />

这样你 AjaxWebWork Action 调用返回一个 action 实例(而不是文字)。然后你必须包括 action 对象的转换器定义(package 级别或单独 action)。

<convert converter="bean" match="your_action_package.*"/>

在 JSP 中导入脚本

下面这些代码开启 DWR 调用 Action 的功能。你还要导入 DWRActionUtil.js 脚本(在你的 web 脚本路径中)像这样在 JS 中调用 Action:

DWRActionUtil.execute(id, params, callback, [displayMessage]);

id 参数
  • actionUri: 要调用 action 的 URI(没有 .action). 例如:
    DWRActionUtil.execute(’/ajax/TestFM’, ‘myform’, ‘doOnTextResult’);
  • actionDefinitionObject: 在 xwork.xml 中定义的 action 对象. 必须指定下面的内容:
  • namespace: xwork.xml 中 action 的名称空间
  • action: xwork.xml 中 action 的名字
  • executeResult: true|false (是否执行 action 的结果, 如果 false 直接返回 action 实例)

例如:

DWRActionUtil.execute({
 namespace:'/ajax',
 action:'TestJS',
 executeResult:'true'
}, 'data', doOnJSResult, "stream...");
params 参数
  • emptyParams: 传递{}忽略任何参数。例子:
    DWRActionUtil.execute('/ajax/TestFM', {}, doOnJSResult, "stream...");
  • fieldId: 被转换为 action 调用参数的字段的 id。
    例子:<input id="mytext" name="mytext" value="some value" type="text"/> DWRActionUtil.execute('/ajax/TestFM', 'mytext', doOnJSResult, "stream...");
  • formId: 表单的 id. 所有的 input 值被转换为 action 调用参数。
  • Note : 如果你的 action 使用了 parameter 拦截器,那么你的 action 会得到正确的参数值,请参考 WebWork
    的文档。
callback 参数
  • callbackFunction: 在 DWR 中,这个函数在请求完毕后调用。
  • callbackObject: 在 DWR 中,callback 对象。
displayMessage 参数

displayMessage 是可选参数,当请求完毕后显示的消息(参考 DWR 文档)

高级

你可以声明一个 pre/post Action 处理器,在 web.xml 中的一个 context-wide 初始化参数(dwrActionProcessor)。处理器必须实现 org.directwebremoting.webwork.IDWRActionProcessor 接口。这个处理器将会在 action 之前和之后被调用,所以你可以做一些预处理或改变结果

目录
相关文章
|
7月前
16dwr - DWR 与 JSF整合
16dwr - DWR 与 JSF整合
27 0
|
7月前
|
开发框架 安全 JavaScript
51dwr - 安全
51dwr - 安全
17 0
|
7月前
|
Java Spring
15dwr - DWR 与 Spring整合
15dwr - DWR 与 Spring整合
26 0
|
7月前
|
前端开发 Java 数据库连接
19dwr - DWR 与 Hibernate整合
19dwr - DWR 与 Hibernate整合
19 0
|
7月前
|
前端开发 JavaScript Java
01dwr - dwr简介
01dwr - dwr简介
21 0
|
7月前
|
JavaScript 前端开发
45dwr - DWR Annotations
45dwr - DWR Annotations
12 0
|
7月前
|
Java PHP
17dwr - DWR 与 Struts整合
17dwr - DWR 与 Struts整合
15 0
|
7月前
09dwr - dwr.xml配置(纵览)
09dwr - dwr.xml配置(纵览)
31 0
|
3月前
|
JavaScript 前端开发 Java
DWR3使用
DWR3使用
|
7月前
|
安全 Java Spring
21dwr - DWR 与 Acegi整合
21dwr - DWR 与 Acegi整合
11 0