【发布时间】:2022-10-14 16:42:09
【问题描述】:
我有这个约束来验证 dhcp 主机地址。
annotation class DHCPAddressConstraint(
val message: String = "Invalid dhcp address.",
val groups: Array<KClass<*>> = [],
val payload: Array<KClass<out Payload>> = [],
val cidrField: String = "",
val addressRangeField: String = ""
)
class DHCPAddressValidator: ConstraintValidator<DHCPAd, Any> {
override fun isValid(obj: Any, context: ConstraintValidatorContext): Boolean {
val cidr = ReflectionUtils.get(obj, cidrField)
val addressRange = ReflectionUtils.get(obj, addressRangeField)
return isValidCIDR(cidr) && isValidAdressRange(cidr, addressRange)
}
}
因此,如果某些内容无效,它将仅返回“无效的 dhcp 地址。”。我想将错误消息设置得更具体,为什么它无效。例如 dhcp 地址范围可能不在 CIDR 范围内或用户输入保留的 IP 地址等。我预计会有这样的错误消息“由于 ${reason} 而导致的 dhcp 地址无效”。如何在运行时设置约束错误消息?
【问题讨论】:
标签: spring spring-boot kotlin