`
thinktank
  • 浏览: 60714 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

DWR 调用返回值方法(转载)

阅读更多
xml 代码
  1. 2.调用有简单返回值的java方法    
  2. 2.1、dwr.xml的配置    
  3. 配置同1.1    
  4. <dwr>    
  5. <allow>    
  6. <create creator="new" javascript="testClass" >    
  7. <param name="class" value="com.dwr.TestClass" />    
  8. <include method="testMethod2"/>    
  9. create>    
  10. allow>    
  11. dwr>    
  12. 2.2、javascript中调用    
  13. 首先,引入javascript脚本    
  14. 其次,编写调用java方法的javascript函数和接收返回值的回调函数    
  15. Function callTestMethod2(){    
  16. testClass.testMethod2(callBackFortestMethod2);    
  17. } Function callBackFortestMethod2(data){    
  18. //其中date接收方法的返回值    
  19. //可以在这里对返回值进行处理和显示等等    
  20. alert("the return value is " + data);    
  21. } 其中callBackFortestMethod2是接收返回值的回调函数   
  22.   
  23. 3、调用有简单参数的java方法    
  24. 3.1、dwr.xml的配置    
  25. 配置同1.1    
  26. <dwr>    
  27. <allow>    
  28. <create creator="new" javascript="testClass" >    
  29. <param name="class" value="com.dwr.TestClass" />    
  30. <include method="testMethod3"/>    
  31. create>    
  32. allow>    
  33. dwr>    
  34. 3.2、javascript中调用    
  35. 首先,引入javascript脚本    
  36. 其次,编写调用java方法的javascript函数    
  37. Function callTestMethod3(){    
  38. //定义要传到java方法中的参数    
  39. var data;    
  40. //构造参数    
  41. data = “test String”;    
  42. testClass.testMethod3(data);    
  43. }   
  44.   
  45. 4、调用返回JavaBean的java方法    
  46. 4.1、dwr.xml的配置    
  47. <dwr>    
  48. <allow>    
  49. <create creator="new" javascript="testClass" >    
  50. <param name="class" value="com.dwr.TestClass" />    
  51. <include method="testMethod4"/>    
  52. create>    
  53. <convert converter="bean" match=""com.dwr.TestBean">    
  54. <param name="include" value="username,password" />    
  55. convert>    
  56. allow>    
  57. dwr>    
  58. <creator>标签负责公开用于Web远程的类和类的方法,<convertor>标签则负责这些方法的参数和返回类型。convert元素的作用是告诉DWR在服务器端Java 对象表示和序列化的JavaScript之间如何转换数据类型。DWR自动地在Java和JavaScript表示之间调整简单数据类型。这些类型包括Java原生类型和它们各自的封装类表示,还有String、Date、数组和集合类型。DWR也能把JavaBean转换成JavaScript 表示,但是出于安全性的原因,要求显式的配置,<convertor>标签就是完成此功能的。converter="bean"属性指定转换的方式采用JavaBean命名规范,match=""com.dwr.TestBean"属性指定要转换的javabean名称,<param>标签指定要转换的JavaBean属性。    
  59. 4.2、javascript中调用    
  60. 首先,引入javascript脚本    
  61. 其次,编写调用java方法的javascript函数和接收返回值的回调函数    
  62. Function callTestMethod4(){    
  63. testClass.testMethod4(callBackFortestMethod4);    
  64. } Function callBackFortestMethod4(data){    
  65. //其中date接收方法的返回值    
  66. //对于JavaBean返回值,有两种方式处理    
  67. //不知道属性名称时,使用如下方法    
  68. for(var property in data){    
  69. alert("property:"+property);    
  70. alert(property+":"+data[property]);    
  71. }    
  72. //知道属性名称时,使用如下方法    
  73. alert(data.username);    
  74. alert(data.password);    
  75. } 其中callBackFortestMethod4是接收返回值的回调函数   
  76.   
  77. 5、调用有JavaBean参数的java方法    
  78. 5.1、dwr.xml的配置    
  79. 配置同4.1    
  80. <dwr>    
  81. <allow>    
  82. <create creator="new" javascript="testClass" >    
  83. <param name="class" value="com.dwr.TestClass" />    
  84. <include method="testMethod5"/>    
  85. create>    
  86. <convert converter="bean" match="com.dwr.TestBean">    
  87. <param name="include" value="username,password" />    
  88. convert>    
  89. allow>    
  90. dwr>    
  91. 5.2、javascript中调用    
  92. 首先,引入javascript脚本    
  93. 其次,编写调用java方法的javascript函数    
  94. Function callTestMethod5(){    
  95. //定义要传到java方法中的参数    
  96. var data;    
  97. //构造参数,date实际上是一个object    
  98. data = { username:"user", password:"password" }    
  99. testClass.testMethod5(data);    
  100. }   
  101.   
  102. 6、调用返回List、Set或者Map的java方法    
  103. 6.1、dwr.xml的配置    
  104. 配置同4.1    
  105. <dwr>    
  106. <allow>    
  107. <create creator="new" javascript="testClass" >    
  108. <param name="class" value="com.dwr.TestClass" />    
  109. <include method="testMethod6"/>    
  110. create>    
  111. <convert converter="bean" match="com.dwr.TestBean">    
  112. <param name="include" value="username,password" />    
  113. convert>    
  114. allow>    
  115. dwr>    
  116. 注意:如果List、Set或者Map中的元素均为简单类型(包括其封装类)或String、Date、数组和集合类型,则不需要<convert>标签。    
  117. 6.2、javascript中调用(以返回List为例,List的元素为TestBean)    
  118. 首先,引入javascript脚本    
  119. 其次,编写调用java方法的javascript函数和接收返回值的回调函数    
  120. Function callTestMethod6(){    
  121. testClass.testMethod6(callBackFortestMethod6);    
  122. } Function callBackFortestMethod6(data){    
  123. //其中date接收方法的返回值    
  124. //对于JavaBean返回值,有两种方式处理    
  125. //不知道属性名称时,使用如下方法    
  126. for(var i=0;i<data.length;i++){    
  127. for(var property in data){    
  128. alert("property:"+property);    
  129. alert(property+":"+data[property]);    
  130. }    
  131. } //知道属性名称时,使用如下方法    
  132. for(var i=0;i<data.length;i++){    
  133. alert(data.username);    
  134. alert(data.password);    
  135. } }   
  136.   
  137. 7、调用有List、Set或者Map参数的java方法    
  138. 7.1、dwr.xml的配置    
  139. <dwr>    
  140. <allow>    
  141. <create creator="new" javascript="testClass" >    
  142. <param name="class" value="com.dwr.TestClass" />    
  143. <include method="testMethod7"/>    
  144. create>    
  145. <convert converter="bean" match="com.dwr.TestBean">    
  146. <param name="include" value="username,password" />    
  147. convert>    
  148. allow>    
  149. <signatures>    
  150. <!----> 
  151. import java.util.List;   
  152. import com.dwr.TestClass;   
  153. import com.dwr.TestBean;   
  154. TestClass.testMethod7(List<testbean></testbean>);   
  155. ]]>    
  156. signatures>    
  157. dwr>    
  158. <signatures>标签是用来声明java方法中List、Set或者Map参数所包含的确切类,以便java代码作出判断。    
  159. 7.2、javascript中调用(以返回List为例,List的元素为TestBean)    
  160. 首先,引入javascript脚本    
  161. 其次,编写调用java方法的javascript函数    
  162. Function callTestMethod7(){    
  163. //定义要传到java方法中的参数    
  164. var data;    
  165. //构造参数,date实际上是一个object数组,即数组的每个元素均为object    
  166. data = [    
  167. {    
  168. username:"user1",    
  169. password:"password2"    
  170. },    
  171. {    
  172. username:"user2",    
  173. password:" password2"    
  174. }    
  175. ];    
  176. testClass.testMethod7(data);    
  177. }   
  178.   
  179. 注意:    
  180. 1、对于第6种情况,如果java方法的返回值为Map,则在接收该返回值的javascript回调函数中如下处理:    
  181. function callBackFortestMethod(data){    
  182. //其中date接收方法的返回值    
  183. for(var property in data){    
  184. var bean = data[property];    
  185. alert(bean.username);    
  186. alert(bean.password);    
  187. }    
  188. } 2、对于第7种情况,如果java的方法的参数为Map(假设其key为String,value为TestBean),则在调用该方法的javascript函数中用如下方法构造要传递的参数:    
  189. function callTestMethod (){    
  190. //定义要传到java方法中的参数    
  191. var data;    
  192. //构造参数,date实际上是一个object,其属性名为Map的key,属性值为Map的value    
  193. data = {    
  194. "key1":{    
  195. username:"user1",    
  196. password:"password2"    
  197. },    
  198. "key2":{    
  199. username:"user2",    
  200. password:" password2"    
  201. }    
  202. };    
  203. testClass.testMethod(data);    
  204. } 并且在dwr.xml中增加如下的配置段    
  205. <signatures>    
  206. <!----> 
  207. import java.util.List;   
  208. import com.dwr.TestClass;   
  209. import com.dwr.TestBean;   
  210. TestClass.testMethod7(Map);   
  211. ]]>    
  212. signatures>    
  213. 3、由以上可以发现,对于java方法的返回值为List(Set)的情况,DWR将其转化为Object数组,传递个javascript;对于java方法的返回值为Map的情况,DWR将其转化为一个Object,其中Object的属性为原Map的key值,属性值为原Map相应的value值。    
  214. 4、如果java方法的参数为List(Set)和Map的情况,javascript中也要根据3种所说,构造相应的javascript数据来传递到java中。   
分享到:
评论

相关推荐

    dwr调用带集合返回值的方法

    Direct Web Remoting (DWR) 是一种在Web应用程序中实现AJAX...以上就是关于"DWR调用带集合返回值的方法"的主要内容,理解并掌握这些要点,可以帮助你更有效地利用DWR进行前后端交互,提高Web应用的用户体验。

    dwr 各种调用方法

    dwr (Direct Web Remoting) 是一种开源技术,它允许在Web应用程序中实现在客户端JavaScript与服务器端Java之间进行安全的远程方法调用。DWR简化了前后端交互,使得前端可以直接调用后端的Java方法,就像调用本地函数...

    DWR调用及传参总结

    以下是对DWR调用及传参方式的详细说明: 1. **无返回值和参数的Java方法调用**: 当Java方法没有返回值且不接受参数时,可以像`callTestMethod1`那样直接调用。在JavaScript中,只需执行`testClass.testMethod1()`...

    高级dwr方法调用少用的

    在DWR中,调用一个没有返回值和参数的Java方法非常简单。首先,你需要在`dwr.xml`配置文件中声明你想要暴露的方法,如`testMethod1`。`&lt;create&gt;`标签用于创建一个JavaScript对象,`&lt;include&gt;`标签则指明你要暴露的...

    DWR 取得回调函数返回值案列

    接下来,在前端JavaScript中,我们可以通过DWR调用上述定义的Java方法,并设置回调函数来接收返回的结果。具体步骤如下: - **初始化变量**:定义一个变量`_data`用于存储回调函数中的数据。 - **设置同步模式**:...

    dwr对各种类型返回值的处理实例

    多个DWR调用可以打包成一个批处理请求,减少网络通信的开销。 总之,DWR通过对各种类型返回值的支持,使得在JavaScript和Java之间交换数据变得简单而直观。无论是简单的数据类型还是复杂的对象结构,DWR都能够有效...

    DWR框架对各种类型方法调用的示例

    在JavaScript中,你可以创建一个字符串变量,然后将其作为参数传递给DWR调用的方法。服务器端接收到这个字符串后,可以进行相应的处理。 3. **有自定义对象为参数的方法**: DWR的强大之处在于它可以序列化和反...

    Dwr源码示例,包含调用java方法返回不同的类型

    在这个"Dwr源码示例"中,我们将深入探讨如何使用DWR调用Java方法,并处理各种类型的参数和返回值。 首先,DWR的核心功能是提供了一种安全、高效的AJAX(异步JavaScript和XML)框架。它通过创建一个JavaScript到Java...

    dwr教程(初学者的宝典)

    DWR (Direct Web Remoting) 是一种开源技术,允许JavaScript在Web浏览器中直接调用Java方法,从而实现AJAX的应用。这个教程对于初学者来说,是理解DWR工作原理和开发流程的重要参考资料。 1. **调用没有返回值和...

    JavaScript调用java方法——dwr步骤.docx

    ### JavaScript调用Java方法——DWR使用步骤详解 #### 一、DWR简介 DWR (Direct Web Remoting) 是一种使服务器端的Java对象能够被客户端JavaScript代码直接调用的技术。通过这种方式,开发人员可以轻松地实现客户端...

    ssh + dwr配置

    5. **Java代码**:在Java类中定义可被DWR调用的方法,这些方法可以直接操作数据库或其他服务。 6. **JavaScript集成**:在HTML或JavaScript文件中,引入DWR自动生成的接口文件(如TestClass.js),以及DWR的核心...

    dwr各种例子(各种数据类型返回值+包+导入可用+注释+附带讲解)

    通过DWR,你可以直接在JavaScript中调用Java方法并接收这些基本类型的返回值。例如,一个简单的Java方法可能返回一个int值,这个值可以在JavaScript中直接使用,无需额外转换。 2. **实体类**: 在实际开发中,...

    DWR与SPRING,DWR与STRUTS2的整合

    2. **结果映射**:在Struts2的配置文件中,可以定义结果类型来处理DWR调用后的返回值,比如将返回值渲染到页面上。 3. **拦截器**:利用Struts2的拦截器机制,可以在DWR调用前后添加额外的操作,如日志记录、性能...

    DWR中文文档 (DWR 2.0)

    6. **调用远程的Cart方法**:详细介绍如何通过DWR调用具体的购物车服务端方法。 7. **演示结果**:提供最终实现效果的截图或视频。 8. **总结**:回顾项目过程,总结经验和教训。 #### 五、附录 **10.1 常见问题**...

    dwr的用法解析

    DWR简化了Ajax(Asynchronous JavaScript and XML)的实现,使得开发者无需直接编写复杂的XMLHttpRequest对象操作,而是通过简单的JavaScript调用就能执行服务器端的方法。 1. **无返回值和参数的JAVA方法调用** ...

    dwr入门+springmvc实现

    利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本DWR0.6添加许多特性如:支持Dom Trees的自动配置...

    DWR实现DEMO

    DWR(Direct Web Remoting)是一个web远程调用框架,利用这个框架可以让AJAX变得很简单,通过DWR可以在客户端通过JavaScript直接调用服务器的Java方法并返回值给JavaScript,整个过程就好像通过本地客户端调用一样,...

    Dwr功能案例

    服务器端执行的方法完成后,其返回值会被DWR转化为JavaScript可读的格式,如JSON或XML,然后在客户端处理。这使得开发者能够直接在页面上更新数据,而无需刷新整个页面。DWR提供了回调函数机制,当服务器响应时,会...

    dwr的一般使用学习笔记

    下面我们将深入探讨DWR的基本使用方法,包括调用无返回值和参数的Java方法、调用有简单返回值的Java方法、调用有简单参数的Java方法以及调用返回JavaBean的Java方法。 1. 调用没有返回值和参数的JAVA方法 在`dwr....

Global site tag (gtag.js) - Google Analytics