在 Spring 消息插值中使用另一个对象字段值

问题描述 投票:0回答:1

如果可能的话,我正在尝试自定义约束消息,其值实际上不是正在验证的值,但属于同一类。

public Car {
  @NotEmpty(message = The car of the model '${this.model}' requires a plate_number)
  String plate_number;

  String model;
}

现在创建它的新实例后

Car myCar = new Car(null, Audi);

验证后,我想收到消息“奥迪车型的汽车需要车牌号”

我不知道是否可能。谢谢:)

spring validation interpolation
1个回答
0
投票

我不知道

@NotEmpty
注释,因为您正在使用
Car
创建一个
constructor
对象,而且我也知道在使用
javax
jakarta
验证时,通常它位于暴露于 REST 端点的
DTO
上。

作为替代方案,您可以在构造函数中使用

Assert.notNull

public class Car {

  private String model;

  private String plate_number;


  public Car(String model, String plate_number) {
    this.model = model;
    Assert.notNull(plate_number,
        "The car of the model " + this.model + " requires a plate_number");
    this.plate_number = plate_number;
  }
}

现在当你通过时:

Car car = new Car("Audi", null);

在控制台中,您将看到下一条错误消息:

java.lang.IllegalArgumentException: The car of the model Audi  requires a plate_number
© www.soinside.com 2019 - 2024. All rights reserved.