0

我将 gwt 与 RequestFactory 一起使用,我想使用 JSR303 验证,但问题是当我使用 requestFactory 调用方法时,例如 add(object o) 它调用每个字段的验证 2 次,例如,当我调用 save 方法时对于具有使用自定义 notnull 注释注释的字段的对象:

currentContext.add(toPersist).fire(new Receiver<Void>() {
        @Override
        public void onSuccess(Void response) {
        }
    });

我自定义的 notnull 注释显示了要验证的值

public class NotEmptyValidator implements
    ConstraintValidator<NotEmpty, Object>{

@Override
public void initialize(NotEmpty constraintAnnotation) {

}

@Override
public boolean isValid(Object value, ConstraintValidatorContext context) {
    System.out.println("the value "+value);
    return  (value==null || value.toString().trim().equals("")) ? false:true;
}

}

我在同一字段的控制台上收到:

当我尝试添加新实体时:[INFO] 值测试 [INFO] 值测试

当我尝试修改现有实体时:[INFO] 值测试 [INFO] 值 null

我的问题是为什么验证被调用 2 次,为什么当我尝试修改时第二次值为 null?

4

1 回答 1

0

是否有可能第一次在客户端,第二次在服务器端?

如果是,出于安全原因,这将是正确的。

客户端验证是为了防止客户端输入错误,服务器端验证是为了保护您的系统免受恶意攻击。

于 2013-02-04T12:45:58.070 回答