播放多字段验证

时间:2012-02-20 08:54:01

标签: playframework

我确信这对Play-gurus来说是明智的,但我找不到任何方法。

我有一个有两个字段的类,表示货币值的整数和小数部分:

@Required
@Min(0)
private Integer whole;

@Range(min = 0, max = 99)
private Integer decimal;

现在,我不想允许整数和小数部分都为0的值。

我可以使用注释指定吗?如果没有,我在哪里挂钩我的验证码?

1 个答案:

答案 0 :(得分:1)

嗯,我不是大师,但我认为你可以通过定义自定义支票来达到你想要的效果:

@CheckWith(WholeCheck.class)
private Integer whole;

@CheckWith(DecCheck.class)
private Integer decimal;

    static class WholeCheck extends Check {
        public boolean isSatisfied(Object obj, Object whole) {
            boolean satisfied = true;
            MyObj myobj = (MyObj) obj;
            if(((Integer)whole) == 0 && myobj.decimal ==0){
                satisfied = false;
                setMessage("whole and decimal cannot be 0");
            }

            return satisfied;
        }
    }