在 sitebricks 中,我可以在 Sitebricks@Service
方法中轻松地从 json 格式的参数中反序列化一个类,如下所示:
request.read(Person.class).as(Json.class);
但是如何从 get/post 参数反序列化一个类?
我知道该Request
对象可以访问参数 ( request.params()
),但它需要更多的努力。
在 sitebricks 中,我可以在 Sitebricks@Service
方法中轻松地从 json 格式的参数中反序列化一个类,如下所示:
request.read(Person.class).as(Json.class);
但是如何从 get/post 参数反序列化一个类?
我知道该Request
对象可以访问参数 ( request.params()
),但它需要更多的努力。
在您的模块中声明您的处理程序类:
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
如果我想要反序列化的对象不是服务本身,那么我将不得不注入 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);
...
}
}