DWRの使い方

10827 ワード

1.1、dwr.xmlの配置
 
 <dwr> 

  <allow> 

  <create creator="new" javascript="testClass" > 

  <include method="testMethod1"/> 

  </create> 

  </allow> 

 
<allow>ラベルには、javascriptに露出してアクセスできるものが含まれています.
<create>タブでは、javascriptでアクセスできるjavaクラスを指定し、DWRはリモートクラスのインスタンスをどのように取得すべきかを定義します.creator=「new」属性はjavaクラスのインスタンスの生成方式を指定し、newはDWRがクラスのデフォルトのコンストラクタを呼び出してインスタンスを獲得すべきことを意味し、他にもspring方式があり、IOC容器Springと統合してインスタンスを得るなど.javascript=「testClass」属性は、javascriptコードがオブジェクトにアクセスする時に使う名前を指定します.
ラベルはjavascriptに公開するjavaクラス名を指定します.
<include>ラベルはjavascriptに公開する方法を指定します.指定しないなら全ての方法を公開します.
<exclude>ラベルは、アクセスを防止する方法を指定します.
1.2、javascriptでの呼び出し
まず、javascript スクリプトを導入する.
<script src='/[WEB-APP]/dwr/interface/ testClass.js'></script> 

  <script src='/[WEB-APP]/dwr/engine.js'></script> 

  <script src='/[WEB-APP]/dwr/util.js'></script> 

   
このうち、TestClass.jsはdwrであり、設定ファイルに基づいて自動的に生成され、engine.jsとutil.jsはdwrが持参するスクリプトファイルである.
 
次に、javaメソッドを呼び出すjavascript関数を作成します.
Function callTestMethod1(){ 

  testClass.testMethod1(); 

  } 

   
2、簡単な戻り値があるjavaメソッドを呼び出します.
 
2.1、dwr.xmlの配置
同じ1.1を設定
 <dwr> 

  <allow> 

  <create creator="new" javascript="testClass" > 

  <include method="testMethod2"/> 

  </create> 

  </allow> 

  </dwr> 

  
2.2、javascriptでの呼び出し
 
まず、javascriptスクリプトを導入します.
次に、javaメソッドを呼び出すjavascript関数と受信リターン値のコールバック関数を作成します.
Function callTestMethod2(){ 

  testClass.testMethod2(callBackFortestMethod2); 

  } 

  Function callBackFortestMethod2(data){ 

  //  data         

  //                   

  alert("the return value is " + data); 

  } 

   
ここでcalBackFortest Method 2は、戻り値を受信するコールバック関数です.
 
3、簡単なパラメータがあるjavaメソッドを呼び出します.
3.1、dwr.xmlの配置
同じ1.1を設定
<dwr> 

  <allow> 

  <create creator="new" javascript="testClass" > 

  <include method="testMethod3"/> 

  </create> 

  </allow> 

  </dwr> 

   
3.2、javascriptでの呼び出し
 
まず、javascriptスクリプトを導入します.
次に、javaメソッドを呼び出すjavascript関数を作成します.
Function callTestMethod3(){ 

  //     java       

  var data; 

  //     

  data = “test String”; 

  testClass.testMethod3(data); 

  } 

   
4、JavaBeanに戻るjavaを呼び出す方法
 
4.1、dwr.xmlの構成
<dwr> 

  <allow> 

  <create creator="new" javascript="testClass" > 

  <include method="testMethod4"/> 

  </create> 

  <convert converter="bean" match=""com.dwr.TestBean"> 

  </convert> 

  </allow> 

  </dwr> 

   
<creator>タグは、Web遠隔用のクラスやクラスの公開方法を担当しています.<convertor>タグは、これらの方法のパラメータと返却タイプを担当しています.convert要素の役割は、DWRがサーバ端でJavaオブジェクト表示とプログレッシブされているJavaScriptとの間でデータタイプをどのように変換するかを教えることである.DWRは自動的にJavaとJavaScript表現の間で簡単なデータタイプを調整する.これらのタイプはJava原生タイプとそれぞれのパッケージタイプ表現とString、Date、行列、およびセットタイプを含む.DWRもJavaBeanをJavaScriptに変換することができますが、安全性のために明示的な配置が要求されます.ラベルはこの機能を完成します.converter="bean"属性指定変換の方式はJavaBean命名規範を採用し、match="comp.dwr.TestBean"属性は変換するjavabeanの名前を指定し、ラベルは変換するJavaBen属性を指定します.
 
4.2、javascriptでの呼び出し
まず、javascriptスクリプトを導入します.
次に、javaメソッドを呼び出すjavascript関数と受信リターン値のコールバック関数を作成します.
 Function callTestMethod4(){ 

  testClass.testMethod4(callBackFortestMethod4); 

  } 

  Function callBackFortestMethod4(data){ 

  //  data         

  //  JavaBean   ,        

  //        ,       

  for(var property in data){ 

  alert("property:"+property); 

  alert(property+":"+data[property]); 

  } 

  //       ,       

  alert(data.username); 

  alert(data.password); 

  } 

  
ここでcalBackFortest Method 4は、戻り値を受信するコールバック関数である.
 
5、JavaBeanパラメータがあるjavaメソッドを呼び出す
5.1、dwr.xmlの構成
同じ4.1を設定
 <dwr> 

  <allow> 

  <create creator="new" javascript="testClass" > 

  <include method="testMethod5"/> 

  </create> 

  <convert converter="bean" match="com.dwr.TestBean"> 

  </convert> 

  </allow> 

  </dwr> 

  
5.2、javascriptで呼び出し
 
まず、javascriptスクリプトを導入します.
次に、javaメソッドを呼び出すjavascript関数を作成します.
Function callTestMethod5(){ 

  //     java       

  var data; 

  //    ,data      object 

  data = { username:"user", password:"password" } 

  testClass.testMethod5(data); 

  } 

   
6、呼び出しがList、SetまたはMapに戻るjava方法
 
6.1、dwr.xmlの配置
同じ4.1を設定
<dwr> 

  <allow> 

  <create creator="new" javascript="testClass" > 

  <include method="testMethod6"/> 

  </create> 

  <convert converter="bean" match="com.dwr.TestBean"> 

  </convert> 

  </allow> 

  </dwr> 

   
注意:List、SetまたはMapの要素がシンプルなタイプ(パッケージクラスを含む)またはString、Date、配列およびセットタイプである場合、タグは不要です.
 
6.2、javascriptで呼び出し(Listに戻ることを例にして、Listの要素はTestBeanである)
まず、javascriptスクリプトを導入します.
次に、javaメソッドを呼び出すjavascript関数と受信リターン値のコールバック関数を作成します.
Function callTestMethod6(){ 

  testClass.testMethod6(callBackFortestMethod6); 

  } 

  Function callBackFortestMethod6(data){ 

  //  data         

  //  JavaBean   ,        

  //        ,       

  for(var i=0;i<data.length;i++){ 

  for(var property in data[i]){ 

  alert("property:"+property); 

  alert(property+":"+data[i][property]); 

  } 

  } 

  //       ,       

  for(var i=0;i<data.length;i++){ 

  alert(data[i].username); 

  alert(data[i].password); 

  } 

  } 

   
7、List、SetまたはMapパラメータがあるjavaメソッドを呼び出します.
 
7.1、dwr.xmlの配置
 
 <dwr> 

  <allow> 

  <create creator="new" javascript="testClass" > 

  <include method="testMethod7"/> 

  </create> 

  <convert converter="bean" match="com.dwr.TestBean"> 

  </convert> 

  </allow> 

  <signatures> 

  <![CDATA[ 

  import java.util.List; 

  import com.dwr.TestClass; 

  import com.dwr.TestBean; 

  TestClass.testMethod7(List<TestBean>); 

  ]]> 

  </signatures> 

  </dwr> 

 
<signature>タグは、java方法におけるList、Set、またはMapパラメータに含まれる正確なクラスを宣言するために使用され、javaコードによる判断を下す.
 
7.2、javascriptで呼び出し(Listに戻ることを例にして、Listの要素はTestBeanである)
まず、javascriptスクリプトを導入します.
次に、javaメソッドを呼び出すjavascript関数を作成します.
Function callTestMethod7(){ 

  //     java       

  var data; 

  //    ,data      object  ,          object 

  data = [ 

  { 

  username:"user1", 

  password:"password2" 

  }, 

  { 

  username:"user2", 

  password:" password2" 

  } 

  ]; 

  testClass.testMethod7(data); 

  } 

 注意:
1、第6の場合、java方法の戻り値がMapであれば、戻り値を受信したjavascriptコールバック関数では、以下のように処理される.
function callBackFortestMethod(data){ 

  //  data         

  for(var property in data){ 

  var bean = data[property]; 

  alert(bean.username); 

  alert(bean.password); 

  } 

  } 

 2、第7の場合、javaの方法のパラメータがMapである場合(keyがStringであると仮定して、valueがTestBeanである)、この方法を呼び出すjavascript関数では、伝達するパラメータを次のように構成する.
 function callTestMethod (){ 

  //     java       

  var data; 

  //    ,date      object,     Map key,    Map value 

  data = { 

  "key1":{ 

  username:"user1", 

  password:"password2" 

  }, 

  "key2":{ 

  username:"user2", 

  password:" password2" 

  } 

  }; 

  testClass.testMethod(data); 

  } 

     dwr.xml          

  <signatures> 

  <![CDATA[ 

  import java.util.List; 

  import com.dwr.TestClass; 

  import com.dwr.TestBean; 

  TestClass.testMethod7(Map<String,TestBean>); 

  ]]> 

  </signatures> 

 3、上記で発見されたように、java方法の戻り値がList(Set)の場合、DWRはObject配列に変換し、java方式の戻り値がMapの場合、DWRはObjectに変換し、Objectの属性は元のMapのkey値であり、属性値は元のMap対応するvalue値である.
4、java方法のパラメータがList(Set)とMapの場合、javascriptの中でも3つに従って、該当するjavascriptデータを構築してjavaに伝えます.
特別な説明:
作成時にはまず実例化します.var obj=new Object();obj={key:"value";obj="value";初期化していないとエラーが変換されます.