提问人:Jjimenez 提问时间:9/26/2023 最后编辑:Jjimenez 更新时间:9/26/2023 访问量:66
在 spring 消息插值中使用另一个对象字段值
Use another object field value in spring message interpolation
问:
如果可能的话,我正在尝试自定义约束的消息,该约束值实际上不是正在验证的值,而是属于同一类的值。
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);
验证后,我想收到消息“奥迪车型的汽车需要plate_number”
我不知道这是否可能。谢谢:)
答:
0赞
Andrei Lisa
9/26/2023
#1
我不知道注释,因为您正在使用创建对象,我也知道在使用或验证时,它通常会暴露在 REST 端点中。@NotEmpty
Car
constructor
javax
jakarta
DTO
作为替代方法,您可以使用 into contructor: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
评论
0赞
Jjimenez
9/26/2023
这个想法更多的是使用约束属性来启动自定义消息,而不是在方法中实现代码。
0赞
Andrei Lisa
9/26/2023
基于您提供的示例。 我认为这不可能与注释一起使用Car myCar = new Car(null, Audi);
0赞
Andrei Lisa
9/26/2023
我的意思是您使用的是纯 Java 代码,但注解来自 javax 或 Jakarta api@NotEmpty
0赞
Jjimenez
9/26/2023
是的,这就是我所想的
0赞
Andrei Lisa
9/26/2023
我的答案足够好吗?
评论