Play Java Forms 不递归检查约束



我正在使用Java中的Play framework 2.3构建一个应用程序。

我有一个带有JSON主体的POST请求。因此,对于检索数据,我使用具有多层叠瓦的Form来尊重JSON模型。它运行得很好,但我最近认为它没有检查约束(如constraints.Required)。我实际上不知道它是否总是有这种行为,或者它是否只是我上次测试的结果,但我不能让它保持原样。

那么,有人知道是否可以递归地检查约束吗?

你有一个不起作用的例子:

public class PairRequest
{
    @Constraints.Required
    public String epc;
    @Constraints.Required
    public RequestProduct product;
}

public class RequestProduct
{
    //Product data
    @Constraints.Required
    public String productCode;
    @Constraints.Required
    public Brand brand;
    @Constraints.Required
    public String furniture;
}

这里,如果字段"furture"不存在,hasError()函数将返回false。

import static play.data.Form.form;
public static Result pair(String tokenString)
{
    try
    {
        Token token = Token.getToken(tokenString);
        PairingCommit commit = PairingCommitService.getCommit(token.user);
        Form<PairRequest> form = form(PairRequest.class).bindFromRequest();
        if(form.hasErrors())//check out for form errors
            throw Error.BAD_REQUEST(form.errors());
        CommitItemService.create(form.get(), commit);
        return ok(toJson(Response.OK));
    }
    catch(Error error){ return ok(toJson(error)); }
}

您必须添加@Valid注释。

最新更新