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.
 */