0

Sitebricks では、次のように Sitebricks@Serviceメソッドで JSON 形式の params からクラスを簡単に逆シリアル化できます。

request.read(Person.class).as(Json.class); 

しかし、get/post パラメーターからクラスを逆シリアル化するにはどうすればよいですか?

Requestオブジェクトが params ( ) にアクセスできることはわかっていますがrequest.params()、もっと手間がかかります。

4

2 に答える 2

3

デシリアライズしたいオブジェクトがサービス自体ではない場合、デシリアライズを行うためにJsonを注入する必要があります。

public class TestPage {
   @Inject Json json;

   @Post
   public void post(Request request) {
     String data = request.param("data");
     Person p = json.in(new ByteArrayInputStream(data.getBytes()), Person.class);

     ...
   }
}
于 2012-09-27T01:12:10.493 に答える
3

モジュールでハンドラークラスを宣言します。

at("/test").serve(TestPage.class); 

次に、TestPageをメンバーで宣言し、get/postパラメータに対応するgetter/setterを関連付けます

public class TestPage {

    private String param;

    @Get
    public Reply<?> get() {
        // request get param "param" is already mapped in param
    }

    @Post
    public Reply<?> post() {
        // request post param "param" is already mapped in param
    }


    public void setParam(String param) {
        this.param = param;         
    }

    public String getParam() {
        return this.param;
    }        

}

次に、getまたはpostパラメータ「param」を使用してURL/testを呼び出します。

http://sitebricks.org/#requestandreplyをチェックしてください

お役に立てば幸いです。

Rgds

于 2012-09-25T09:16:55.690 に答える