在sitebricks中,我可以轻松地在Sitebricks @Service
方法中使用json格式的params反序列化类:
request.read(Person.class).as(Json.class);
但是如何从get / post params反序列化一个类?
我知道Request
对象可以访问参数(request.params()
),但这需要更多的努力。
答案 0 :(得分:3)
在你的模块中声明你的处理程序类:
at("/test").serve(TestPage.class);
然后使用成员声明您的TestPage并关联与您的get / post params相对应的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
答案 1 :(得分: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);
...
}
}