Play Java Forms不会递归检查约束

时间:2015-06-30 14:22:53

标签: java json recursion playframework-2.0

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

我有一个JSON正文的POST请求。因此,对于retreiving数据,我使用具有多层次重叠的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;
}

这里如果田地'家具'如果不存在,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)); }
}

1 个答案:

答案 0 :(得分:1)

您必须添加@Valid注释。