0

在 sitebricks 中,我可以在 Sitebricks@Service方法中轻松地从 json 格式的参数中反序列化一个类,如下所示:

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

但是如何从 get/post 参数反序列化一个类?

我知道该Request对象可以访问参数 ( request.params()),但它需要更多的努力。

4

2 回答 2

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 回答
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 回答