определять сообщения на основе локали в проверках гибернации - PullRequest
0 голосов
/ 23 декабря 2018

Я пытаюсь использовать сообщения об ошибках валидации, основанные на текущей активной локали, следующим образом

@Entity
@Table(name = "footable")
public class TestModel extends BaseEntity {
   @NotEmpty(message = "${notEmpty}")
   private String name;
}

Однако кажется, что не удается разрешить свойства, я получаю

EL expression '${notEmpty}' references an unknown property

У меня notEmpty определено в messages.properties и application.properties

Я также попытался использовать @Value из lombok, что приводит к ошибке времени компиляции, ачем ошибка времени выполнения.

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Добавить в вашу конфигурацию

@Bean
public ReloadableResourceBundleMessageSource messageSource() {
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
    messageSource.setBasename("classpath:messages");
    messageSource.setDefaultEncoding("UTF-8");
    return messageSource;
}

@Bean
public LocalValidatorFactoryBean validatorFactoryBean() {
    LocalValidatorFactoryBean validatorFactoryBean = new LocalValidatorFactoryBean();
    validatorFactoryBean.setValidationMessageSource(messageSource());
    validatorFactoryBean.setApplicationContext(context);
    return validatorFactoryBean;
}

Удалить сообщение из аннотации

public class TestModel extends BaseEntity {
    @NotEmpty
    private String name;
}

К messages.properties добавить сообщение как

NotEmpty.testModel.name=The message of error

Имя NotEmpty.testModel.name следует соглашению о присвоении имен .

0 голосов
/ 23 декабря 2018

Нет необходимости в $, используйте message = "{notEmpty}".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...