Jakarta ee Bean验证API中javax.validation.Payload的用例是什么?
定义: 约束注释必须定义一个有效负载元素,该元素指定与约束声明关联的有效负载。有效负载参数的类型为Jakarta ee Bean验证API中javax.validation.Payload的用例是什么?,jakarta-ee,bean-validation,payload,Jakarta Ee,Bean Validation,Payload,定义: 约束注释必须定义一个有效负载元素,该元素指定与约束声明关联的有效负载。有效负载参数的类型为有效负载[] Class<? extends Payload>[] payload() default {}; 我已经阅读了它的示例,但我不明白如何在JSF中使用这个元数据?你能解释一下现实世界中有效载荷的其他用例吗?有效载荷携带的元数据是什么?也许这会对我们有所帮助 导入javax.validation.*; 导入javax.validation.constraints.NotNu
有效负载[]
Class<? extends Payload>[] payload() default {};
我已经阅读了它的示例,但我不明白如何在JSF中使用这个元数据?你能解释一下现实世界中有效载荷的其他用例吗?有效载荷携带的元数据是什么?也许这会对我们有所帮助
导入javax.validation.*;
导入javax.validation.constraints.NotNull;
导入java.util.Set;
公共类ConstraintPayloadeExample2{
私有静态最终验证器;
静止的{
Configuration config=Validation.byDefaultProvider().configure();
ValidatorFactory=config.buildValidatorFactory();
validator=factory.getValidator();
工厂关闭();
}
公共接口AppErrorHandler扩展有效负载{
无效或错误(约束违反);
}
公共静态类ErrorEmailSender实现AppErrorHandler{
@凌驾
公共无效申报人(违反强制令){
System.out.println(“向支持团队发送电子邮件:”+
冲突。getPropertyPath()+“”+
违反.getMessage());
}
}
公共静态类TestBean{
@NotNull(有效负载={ErrorEmailSender.class})
私有字符串str;
公共字符串getStr(){
返回str;
}
公共void setStr(字符串str){
this.str=str;
}
}
公共静态void main(字符串[]args){
TestBean=新的TestBean();
设置约束条件=
validator.validate(bean);
if(constraintViolations.size()>0){
constraintViolations.stream().forEach(
ConstraintPayloadeExample2::processError);
}否则{
//继续使用用户对象
System.out.println(bean);
}
}
私有静态void processError(约束冲突){
对我来说,这个答案看起来并不完整。请考虑在答案中使用解释,而不仅仅是发布代码和链接。我仍然不理解这里的代码>有效载荷< /代码>类的目的。
/**
* Payload type that can be attached to a given
* constraint declaration.
* <p/>
* Payloads are typically used to carry on metadata information
* consumed by a validation client.
* </p>
* Use of payloads is not considered portable.
*/