游戏中的交叉场验证?

时间:2012-01-18 19:58:32

标签: playframework

在比赛中实现交叉场验证的最佳方法是什么?如果字段a为空,则字段b必须为> 10,等等?

2 个答案:

答案 0 :(得分:1)

如何在这些字段上创建临时伪属性和自定义验证规则?

@Entity
public class Foo extends Model {
  public String a;
  public int b;
  @Transient
  @CheckWith(CCheck .class)
  transient boolean c;
  public boolean getC() {
    return a != null || b > 10;
  }

  static class CCheck extends Check {
    public boolean isSatisfied(Object myObject, Object val) {
      return Boolean.valueOf(val);
    }
  }

}

如果这不起作用,那么您可能需要使用a和'b'创建一个嵌入式类,并使用该类创建对该字段的自定义检查。

答案 1 :(得分:1)

我会直接在我的Controller操作中执行此操作:

public static void action(@Required int a, @Required int b)
{
    if (a == null)
    {
        validation.isTrue(b > 10).message("b must be greater than 10");
    }
}