DWRのオブジェクト変換
いろんなBeanオブジェクトを作って、DWRで変換してみた
function call() { BeanContener.getBean(callback); } function callback(bean) { //ここにブレークポイントを設定する }
- firebugのブレークポイト機能を使って、受け取ったデータがどんな形になってるのか見てみる.
StringBean
- String strという値を一つ持ったBeanクラスを変換
サーバ側
StringBean bean = new StringBean(); bean.setStr("hello");
- クライアント側ではbean.strとして値を取り出す
Firebugで調べたデータ型
StringArrayBean Stringの配列を持たせる
- BeanクラスにはString[] strArrayを持たせてみる
サーバ側
String[] strArray = {"hello","world","test"}; StringArrayBean bean = new StringArrayBean(); bean.setStrArray(strArray);
- クライアント側ではbean.strArray[0],bean.strArray[1],bean.strArray[2]として値を取り出す
Firebugで調べたデータ型
StringMapBean Mapを持たせてみる
- BeanクラスにMap
strMapを持たせる - このときMapのキーはStringでなくてはいけない
- Map
なんていう風にすると怒られる - 警告: --Javascript does not support non string keys. Converting 'java.lang.Integer' using toString()
- Map
サーバ側
Map<Integer, String> strMap = new HashMap<String, String>(); strMap.put("100", "hello"); strMap.put("200", "world"); strMap.put("300", "test"); StringMapBean bean = new StringMapBean(); this.bean.setStrMap(strMap);
- JavaScriptではmapを配列として扱う
- bean.strMap["100"],bean.strMap["300"],bean.strMap["200"]なんて風に取り出せる
- for(i in bean.strMap)なんていう風にinで使うと便利そう
Firebugで調べたデータ型
追記 JavaScriptでStringMapBeanを作る
上であげたStringMapBeanをJavaScript側で作って送ってみる
StringMapBeanContener.setBean(StringMapBean)をJavaScriptで使う場合、こんな感じにStringMapBeanを表現する
StringMapBeanContener.setBean( { strMap:{"300":"一つ目の値","500":"二つ目の値","800":"三つ目の値"} } );