我使用了ConstraintValidator.ContextConstraintViolationBuilder
的AddNode()
方法将错误消息添加到自定义路径,但不推荐使用此方法。但是,当我使用新方法AddPropertyNode
时,我会得到一个AbstractMethoderRor
。
是不是我缺少了一些依赖?
下面是错误消息的片段:
java.lang.AbstractMethodError:
org.hibernate.validator.internal.engine.ConstraintValidatorContextImpl$ErrorBuilderImpl
.addPropertyNode(Ljava/lang/String;)
Ljavax/validation/ConstraintValidatorContext$ConstraintViolationBuilder
$NodeBuilderCustomizableContext;
下面是使用Hibernate validator Version4.3.1-Final进行跨字段验证的验证器片段
import org.springframework.beans.*;
...
private String first;
private String second;
public boolean isValid(Object value, ConstraintValidatorContext context) {
BeanWrapper beanWrapper = new BeanWrapperImpl(value);
Object fieldObj = beanWrapper.getPropertyValue(first);
Object verifyObj = beanWrapper.getPropertyValue(second);
if (fieldObj.equals(verifyObj)) {
return true;
}
else {
context.disableDefaultConstraintViolation();
context.buildConstraintViolationWithTemplate("message")
.addPropertyNode(fieldObj).addConstraintViolation();
// ~ Depreciated, but works correctly~
// context.buildConstraintViolationWithTemplate("message")
// .addNode(fieldObj).addConstraintViolation();
return true;
}
}
在Bean Validation 1.1 API中添加了addPropertyNode()
方法。当您使用BV1.1 API时,您似乎使用了Hibernate Validator(4.x)的早期版本,该版本仅实现Bean验证1.0。您应该确保使用Hibernate Validator5.x,它是Bean Validation1.1的参考实现。
我试图使用注释和ConstraintValidator接口创建自定义bean验证。目的是使模型的名称独一无二。我不知道为什么,但是当我提交表单以便添加产品时,会抛出NullPointerException。 我的root-context.xml文件:
我已经为此斗争了好几天,我已经阅读了这里的所有讨论,但没有解决方案...... 我有一个自定义约束… 独一无二.java 这是由UniqueConstraintValidator使用的.java 现在,我的模型有这个注释,我需要在其中验证字段的唯一性 现在,我知道自定义注释在更新现有对象时不起作用,但是现在我需要了解它是如何工作的。假设我们想要添加一个新对象。 当我试图保存一个已经存在的值时,我得
主要内容:自定义验证器类实例我们可以在JSF中创建自己的自定义验证器。以下列表是在JSF中创建自定义验证器的步骤。 通过实现接口创建一个验证器类。 实现上面接口的方法。 使用注释为自定义验证器分配唯一的ID。 自定义验证器类实例 打开 NetBeans IDE 创建一个Web工程:CustomValidator,其目录结构如下所示 - 创建以下文件代码,文件:index.xhtml 的代码内容如下所示 - 文件:result
我正努力在我的Android应用程序中实现一个自定义验证器。我想在列表视图中显示一些从服务器检索到的建议(它可以正常工作),即使在我的AutoCompleteTextView中不以相同的字母开头。 所以,也就是说,如果我写“n”,我希望得到服务器响应,它是“r”。因此,我尝试实现一个验证器,设置示例,该示例控制服务器响应是否为空。 建议?提前致谢
我们可以在JSF中创建自己的Custom验证器。 在JSF中定义自定义验证器分为三个步骤。 步 描述 1 通过实现javax.faces.validator .Validator接口创建验证器类。 2 实现上述接口的validate()方法。 3 使用注释@FacesValidator为自定义验证程序分配唯一ID。 步骤1:创建Validator类:UrlValidator.java public
表单验证发生在数据验证之后。如果你需要定制化这个过程,有几个不同的地方可以修改,每个地方的目的不一样。表单处理过程中要运行三种类别的验证方法。它们通常在你调用表单的is_valid() 方法时执行。还有其它方法可以触发验证过程(访问errors 属性或直接调用full_clean() ),但是通用情况下不需要。 一般情况下,如果处理的数据有问题,每个类别的验证方法都会引发ValidationErr