[英][PlayFramework 2.5][Java] JSON post request binding into form
我的控制器用于REST服务,应该接收JSON:
body {
"text": "string",
"page": 0
}
我根据这个创建了类:
@ApiModel(
value="FSearch",
description = "Parameters for user search"
)
public class FSearch {
@ApiModelProperty(
value = "Text , to lookup for",
notes = "Can be empty",
required = false
)
public String text;
@ApiModelProperty(
value = "Page number of search results",
required = true
)
@Constraints.Required
public int page;
}
我的控制器出价如下所示:
@BodyParser.Of(BodyParser.Json.class)
public Result search(){
Form<FSearch> searching = formFactory.form(FSearch.class).bindFromRequest();
if (searching .hasErrors()) {
return badRequest(searching .errorsAsJson());
}
//Another not releated code
return ok(Json.toJson(result));
}
现在,当我测试发送这样的数据时:
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \ "text": "bla", \ "lol": 0 \ }'
所以我要发送这个JSON:
body {
"text": "bla",
"lol": 0
}
注意大声笑而不是页面,但是表单仍然被绑定而没有任何错误...我该怎么做以确保变量名称在json绑定中匹配?
这是非常糟糕的文档,但是Required
注释本质上只不过是null
-check 。 由于int
永远不会为null
,因此它将始终通过。 您可以将字段设为Integer
(可以为null
),也可以使用基于数字的约束之一(如Min
来检查其默认值以外的有效值(假设有一个数字可以标记为无效值,例如否定一个或多个)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.