这就是我希望能够在JPA实体中进行bean验证的功能:
我想用@NotNull
代替@NotNull(message="keyInMyResourceBundleFile")
我也想参数化resourceBundle,我不知道它的语法,因为在我看来message属性仅包含一个字符串。
参数本身可以是i18n-ed。例如,假设resourcebundle参数有一个param属性,用英语@NotNull(message="missing.value", params={"credit card"}) String creditCard;
将显示如下内容:“缺少现场信用卡的必需值。在印度尼西亚,它将类似于“ Nilai harus di isi untuk Kartu Kredit。在此示例中,我无法对“信用卡”进行硬编码,因为在印度尼西亚,它是“ Kartu Kredit”
显示在日志文件或UI的资源包中定义的错误消息。我不确定如何执行此方法,我应该捕获ConstraintViolationException
,获取消息并通过自己的代码处理资源包吗?
请分享您对此的想法?
谢谢 !
最佳答案
关于1 + 2
@NotNull(message="{keyInMyResourceBundleFile}")
圆括号是参数替换的指标
关于3
不知道你在追求什么。 @NotNull没有params属性。我想你会的
@NotNull(message="{missing.credit.card}")
而且,如果将其放置在另一个属性上,则会调用键{missing.name}
关于4
ConstraintViolationException包含* ConstraintViolation * s的集合。每个ConstraintViolation都包含插入的消息以及消息模板。如果要记录它,请执行此操作...