gpt4 book ai didi

java - Spring数据休息Bean验证国际化

转载 作者:太空宇宙 更新时间:2023-11-04 13:36:23 25 4
gpt4 key购买 nike

我是 spring 特别是 spring boot 的新手,我正在尝试使用国际化,到目前为止我可以很好地使用普通 Controller ,但我无法使用 spring-data-rest 使其与 Bean 验证一起使用。

我使用以下代码来启动应用程序:

@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());
}
}

我可以在 Controller 中很好地使用语言环境,但我无法使 Bean 验证尊重其他语言环境,它始终使用默认语言环境。

有什么帮助吗?

我在版本 1.2.5.RELEASE 中使用 spring-data-rest 和 spring-boot。

最佳答案

我找到了一个解决方案,因为没有人帮助我发帖,因为可以帮助其他人。

如果我没有在 SessionLocaleResolver 上设置默认位置,它会从 Accept-Header 获取区域设置,这样我就可以工作了。

@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
// Remove this line
// slr.setDefaultLocale(Locale.US);
return slr;
}

关于java - Spring数据休息Bean验证国际化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31654879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com