2012-02-27 16 views
2

からJSONオブジェクトを初期化します。この問題に取り組むために、このデータのJava Bean表現を作成し、この圧縮形式からBean形式へアダプタを書き込むか、またはその逆をサーバー側で書き込むことを計画しています。 さらに、クライアント側のjavascriptがこれを操作できるように、私はJacksonのようなライブラリを使ってこのbeanをjsonに変換する予定です。は、私は、次の要件を持っているJavaの豆

このアプローチでは、クライアントはこのBeanから作成されたjsonオブジェクトとしてデータを取得しますが、これはおそらく適切なものですが、新しいオブジェクトを作成することもできます。今私はこれに関する以下の質問を持っています -

  1. これは有効なアプローチですか、何かを変更する必要がありますか?
  2. 私はこの新しいjsonオブジェクトの初期化をjavascriptで実行する方法があります。このBeanにマッピング可能な構造にすることで、Bean構造の変更がこのjsonオブジェクト定義を明示的に変更するように促されることはありませんか?
+0

誰かがここで助けてくださいことはできますか?ありがとう! – kshitij

答えて

0

あなたの意見は私にとっては良いアプローチだと思われます。 クライアント側でJavaBeanの新しいインスタンスをサーバー側の構造と同期させて作成できるようにするには、新しいインスタンスを作成するために使用できる「プロキシ」オブジェクトをクライアントに提供できます。このプロキシは、サーバー側で常に生成され、常にサーバー側のクライアントと同期しているクライアント側のオブジェクトの正しいインスタンスを作成できます。

例(非常に粗い、それはちょうどあなたのアイデアを与えることです):

1)あなたのJavaBeansのサーバー側生成されたプロキシ

<script src="/server/url/mapped/to/servlet/ssproxy.js"></script> 

動的にサーブレットを経由して生成されたプロキシを含み

2)あなたのssproxy.js(サーバーによって生成された)の内容:

(サーバーで生成されたもの):サーバーサイドオブジェクトの新しいクライアントサイドインスタンスを作成するために必要なJavaScriptコードが含まれています。
var server = {}; 
server.Proxy = (function(){ 
    function _extend(obj, additional) { 
     //copy properties from additional into obj 
     //... I'll leave that to you... 
    } 
    function _createObject(config) { 
     var default = { 
      attribute1:'', 
      attribute2:'' 
     }; 
     //you can implement something 
     //like jQuery extend() function here 
     //to override default values with passed in args 
     _extend(default, config); 
     return default; 
    } 
    return { 
     createObject: _createObject 
    }; 
}()); 

あなたは、あなたがそれを必要とするとき、オブジェクトを作成するためにそれを使用することができます。

var newobj = server.Proxy.createObject({attribute1:'custom value'}); 
関連する問題