Spring Data Rest Bean Validation Интернационализация
Я новичок в Spring, особенно в Spring Boot, я пытаюсь использовать интернационализацию, пока что я нормально использую обычные контроллеры, но я не могу заставить его работать с Bean Validation, используя spring-data-rest.
Я использую следующий код для запуска приложения:
@EnableJpaRepositories
@SpringBootApplication
@EnableWebMvc
public class Application extends WebMvcConfigurerAdapter {
@Bean(name = "validator")
public LocalValidatorFactoryBean validator() {
return new LocalValidatorFactoryBean();
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
slr.setDefaultLocale(Locale.US);
return slr;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
lci.setParamName("lang");
return lci;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
}
Я могу нормально использовать локаль с контроллерами, но не могу заставить Bean Validation уважать другие локали, она всегда использует локаль по умолчанию.
Любая помощь?
Я использую spring-data-rest и spring-boot в версии 1.2.5.RELEASE.
1 ответ
Я нашел решение, так как никто не помог мне, потому что я могу помочь кому-то еще.
Если я не устанавливаю местоположение по умолчанию для SessionLocaleResolver, он получает локаль из Accept-Header, поэтому я буду работать.
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
// Remove this line
// slr.setDefaultLocale(Locale.US);
return slr;
}