我有一个springboot应用程序,我正在尝试国际化bean验证错误。因此,我添加了包含验证消息的特定于语言环境的属性文件,并使用localresolver来更改语言环境。问题是,在验证消息中,im还附加了字段名,例如:“payer.toaddress.legalname”。为了获得更好的用户体验,我需要从正确的属性文件中获取这个字段名的翻译。如何实现从validatiomessages\u xx.properties读取键“payer.toaddress.legalname”的值的代码?xx表示验证程序中设置的当前语言代码。
ConstraintViolation<ValidCustomer> constraintValidation = constraintViolations.stream().findFirst().get();
String invalidField = constraintValidation.getPropertyPath().toString();
String errorMsg = String.format("%s - %s", invalidField, constraintValidation.getMessage());
1条答案
按热度按时间dgjrabp21#
当应用程序启动时,您的文件将只被读取一次。spring没有任何功能允许在运行时自动动态读取属性文件。
在这种情况下,如果您想动态地读取它,您可以将该属性移动到应用程序在运行时访问的数据库中,或者本地读取一些文件,但需要为其编写代码。
如果您只想读取一次,那么当应用程序启动时,下面的代码将向您注入您希望使用的值。
使用
@Value
在springbean中注入值的注解