gpt4 book ai didi

java - 如何使用注释获取JSR 303验证的message属性中写入的消息

转载 作者:行者123 更新时间:2023-12-02 12:03:17 25 4
gpt4 key购买 nike

我的场景是:

我有一个具有 JSR 303 验证的 pojo 类,如下所示:

  public class Customer{

String customerId;
String name;
BigDecimal salary;

@NotNull(message = "CustomerId is mandatory")
@Size(max = 7, message = "Invalid length for customerId")
public void getCustomerId(){
return customerId;
}

@NotNull(message = "Name is mandatory")
public void getName(){
return name;
}

@Digits(integer=5, fraction=3, message="Invalid length for salary")
public void getSalary(){
return salary;
}

}

我的要求是我想知道哪个特定字段未通过验证,并且我希望将消息写入“message”属性中。

目前,我能够跟踪 fieldName,但无法跟踪“message”属性中存在的消息。

我正在使用以下方法。

  public void validateCustomer(Customer customer){

Errors errors = this.errorFactory.getInstance(Customer,
Customer.class.getName());
jsrValidator.validate(customer, errors);
if(errors.hasErrors()){
if(errors.getFieldError() != null){
//fieldName that failed to validate.
String fieldName = errors.getFieldError().getField();

//I also want the message written in the attribute
"message" of the annotation.

}
}
}

我还希望将消息写入注释的属性“message”中。我怎么才能得到它?可以这样做吗?

最佳答案

什么是 jsrValidator?我认为它应该是 Validator 的一个实例,并且有一个返回 Set 的 validate(...) 方法。并且该消息应该在每个 ConstraintViolation 实例上可用。

关于java - 如何使用注释获取JSR 303验证的message属性中写入的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47087122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com