サーバー (Spring を使用) とクライアント (ExtJS) の間で透過的なデータ受け渡しを実装したいと考えています。
サーバー側には、ModelAndView オブジェクトを返す Spring Controller があります (JSP を使用)。私は通常、モデル オブジェクトを作成しません。アイテムをモデル Map に入れるだけです。
簡単で透過的な Java から Javascript オブジェクトへの変換が必要です。サーバー側では、Java Date オブジェクトをマップに配置し、クライアントで Javascript Date オブジェクトを取得します。つまり、サーバー上で次のようなコードを記述します。
public ModelAndView getModelAndView(User user) {
Map<String, Object> modelMap = new HashMap<String, Object>();
modelMap.put("date", new Date());
modelMap.put("intarray", new int[] {1,2,3});
return new ModelAndView("mainpage", modelMap);
}
クライアントでは、JSP で次のように記述します。
var model = <someMagicTagOrSomething />
レンダリングされた HTML では、次のようになります。
var model = {
date: Date.parse('2012-01-01 12:12:12', 'Y-m-d H:m:s'), //JS Date object
intarray: [1,2,3]
}
Spring のドキュメントで見たことのほとんどは、@NumberFormat(style=Style.PERCENT) のような注釈を使用してサーバーでオブジェクトの書式設定を指定し、form:input タグを使用してクライアントでそれらを取得することです。クライアントで日付をフォーマットし、クライアントに送信されるフォーマットについて心配したくないので、これは私が望むものではありません。
これを達成するための最良の方法は何ですか? すぐに使えるソリューションはありますか、それとも自分で何かを書く必要がありますか? Gson のようなライブラリを使用してモデルを JSON に変換できることはわかっていますが、これは Java Dates を文字列として返すので、Javascript の日付オブジェクトをすぐに取得したいので、フォーマットについて心配する必要はありません。
アドバイスありがとうございます。
ピーター