2

最初に play 1.2.4 と morphia 1.2.6a を使用して、json データをコントローラーにポストしようとしました。それは常にプレイ内のどこかで null ポインター例外で終了したので、プレイ 1.2.3 に切り替えて、もう少し進みましたが、まだ混乱しています。post 呼び出しは成功しますが、データが到着しないようです。

ルート



    POST /mytest    mycontroller.myposttest

mycontroller.java



    public static void myposttest(SampleObject item){
       Gson gs = new GsonBuilder().create();
       System.out.printf(gs.toJson(item));
       //NOTE: item is empty every time
    }

mytest.java



    String jsonText = "{name=\"foo\"}"; 
    Response response = POST("/mytest/","application/json",jsonText);
    //NOTE: the post call succeeds but the jsonText data is not found on the other side

私が読んだ例は、これが機能していることを示していますが、私はこれを非常に長い間いじっていて、それを理解していません。これはどのように機能することを意図していますか?

4

1 に答える 1

1
  1. Play は Json を直接オブジェクトにバインドできません
  2. 投稿データに「item」という名前のパラメータがありません

郵便番号を次のように変更する必要があります。

Response response = POST("/mytest/","application/json",{item: jsonText});

コントローラーコードは次のようになります。

public static void myposttest(String item){
    Gson gs = new GsonBuilder().create();
    SampleObject obj = gs.fromJson(item);
    obj.save();
    ok();
}
于 2012-04-30T07:44:00.063 に答える