ymir-jsonモジュールを使うことで、JSONによる通信を行なうことができるようになります。
ymir-jsonモジュールの使い方
ここではMaven2で管理されているアプリケーションプロジェクトでymir-jsonを使用するための方法を説明します。
ymir-jsonを使用するには、アプリケーションのpom.xmlに以下のエントリを追加して下さい:
<dependency> <groupId>org.seasar.ymir</groupId> <artifactId>ymir-json</artifactId> <version>(Ymirのバージョン)</version> </dependency>
バージョン番号はYmir本体のバージョン番号と合わせるようにして下さい。
JSONリクエストの受信
Webブラウザ側から送信されたJSONリクエスト(Content-Typeがapplication/jsonまたはtext/javascriptでかつリクエストボディがJSON形式であるリクエスト)を受信すると、自動的にJSONの内容がPageオブジェクトにインジェクトされます。
例えば以下のようなJSONリクエストを受信すると、Pageオブジェクトのhoeプロパティとfugaプロパティにそれぞれ「HOE」、「FUGA」が設定されます。
JSONリクエスト:
{ "hoe" : "HOE", "fuga" : "FUGA" }
Pageクラス:
public class ExamplePage { private String hoe_; private String fuga_; @RequestParameter public void setHoe(String hoe) { hoe_ = hoe; } @RequestParameter public void setFuga(String fuga) { fuga_ = fuga; } }
インジェクト対象となるSetterは、リクエストパラメータ用のSetterと同様、@RequestParameterアノテーションが付与されたものだけです。
JSONレスポンスの送信
以下のように返り値の型がnet.sf.json.JSONObjectであるアクションメソッドを用意してJSONObjectオブジェクトを返すと、返り値の内容がJSON形式(Content-Typeはapplication/json; charset=UTF-8)でWebブラウザに送信されます。
public JSONObject _post() { JSONOBject obj = new JSONObject(); obj.put("hoe", "HOE"); obj.put("fuga", "FUGA"); return obj; }