当前位置: 首页 > 知识库问答 >
问题:

Spring数据restbean验证国际化

蒋茂
2023-03-14

我是spring新手,特别是spring boot,我正在尝试使用国际化,到目前为止,我在普通控制器上使用的很好,但我无法使用spring数据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());
    }
}

我可以在控制器中很好地使用区域设置,但我不能让Bean验证尊重其他区域设置,它总是使用默认区域设置。

有什么帮助吗?

我在1.2.5版本中使用了sping-data-rest和sping-start。释放。

共有1个答案

党祖鹤
2023-03-14

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

如果我不在SessionLocaleResolver上设置默认位置,它会从Accept-Header获取区域设置,所以我会工作。

@Bean
public LocaleResolver localeResolver() {
    SessionLocaleResolver slr = new SessionLocaleResolver();
    // Remove this line
    // slr.setDefaultLocale(Locale.US); 
    return slr;
}
 类似资料:
  • 问题内容: Hibernate验证程序是否支持国际化。我看到了罐子,可以看到各种ValidationMessages.properties文件。 我们是否可以创建自己的将国际化的自定义错误消息?我不想使用Hibernate验证程序默认提供的错误消息。 我们需要使用我们自己的自定义消息,它们应该被国际化。 Hibernate验证程序支持哪些语言。在jar中,我看到了英语,法语,德语,土耳其语和蒙古语

  • 我有一个Spring mvc项目,有Spring data、jpa和hibernate。我有一个多语言数据库。我设计了我的数据库和实体。我正在寻找一种按语言查询表的最佳实践。我必须编写自定义jpa查询吗,或者有一种通用的方法来查询我的表。 如果我在数据库或实体设计上有错误,请警告我。 数据库: 本地化字符串实体: 多语言字符串实体: 类别实体: 类别存储库: 我怎么能传递一个语言参数到并获得该语言

  • 我是编程的新手,我正在尝试实现一个小的象棋游戏。 我目前正在为每件作品的验证移动而挣扎。 字典是: 我在每个子类中都创建了一个函数(Pawn,Rook,Queen...)这应该能证明这次行动是正确的。语法类似于: 目前,我可以移动任何白色树懒或树懒上有一个黑色的部分(但我不能吃我自己),反之亦然。 我想我使用的是而不是列表列表这一事实使事情变得更加困难。我真的迷路了。这将是惊人的,如果你可以帮助我

  • 我正在做一个小项目,当我在Spring尝试实现i18n时,它不起作用,即使我尝试更改默认语言,它也不起作用。这是我的spring servlet。XML代码 我有4条消息。类路径消息中的属性。属性,消息。properties,messages\u fr.properties,messages\u de.properties默认语言不会始终更改其使用messages\u en。属性(如果删除邮件)。

  • 主要内容:1. 配置 Spring MVC 的配置文件,2. 编写国际化资源文件,3. 在页面中获取国际化内容,4. 手动切换语言环境,示例国际化(Internationalization 简称 I18n,其中“I”和“n”分别为首末字符,18 则为中间的字符数)是指软件开发时应该具备支持多种语言和地区的功能。 换句话说,软件应该能够同时应对多个不同国家和地区用户的访问,并根据用户地区和语言习惯,提供相应的、符合用具阅读习惯的页面和数据。例如,为中国用户提供汉语界面显示,为美国用户提供提供英语界

  • 主要内容:1. 编写国际化资源文件,2. 使用 ResourceBundleMessageSource 管理国际化资源文件,3. 获取国际化内容,验证,手动切换语言国际化(Internationalization 简称 I18n,其中“I”和“n”分别为首末字符,18 则为中间的字符数)是指软件开发时应该具备支持多种语言和地区的功能。换句话说就是,开发的软件需要能同时应对不同国家和地区的用户访问,并根据用户地区和语言习惯,提供相应的、符合用具阅读习惯的页面和数据,例如,为中国用户提供汉语界面显示