代码之家  ›  专栏  ›  技术社区  ›  Chloe

为什么在给定“en-us”时,spring不使用locale“en”?

  •  0
  • Chloe  · 技术社区  · 6 年前

    相关但不相同 this answer . 我有

    @Bean
    public LocaleResolver localeResolver() {
        AcceptHeaderLocaleResolver ahlr = new AcceptHeaderLocaleResolver();
        ahlr.setDefaultLocale(Locale.ENGLISH);
        return ahlr;
    }
    

    我的浏览器正在发送 Accept-Language: en-US,en;q=0.9 . 我有 messages_en.properties (但不是 messages.properties )我得到这个错误

    javax.servlet.jsp.JspTagException: No message found under code 'title' for locale 'en_US'.
    

    我知道我可以通过重命名来修复它 信息属性 消息.属性 但是为什么弹簧靴找不到 en 给定时的区域设置 en_US ?

    我想当有人 fr_FR 区域设置而不是 fr .我真的要复制每个国家的地方吗?

    如果找不到特定的国家/地区,如何使Spring更智能地使用该语言?

    弹簧套1.5.13,弹簧芯4.3.17

    2 回复  |  直到 6 年前
        1
  •  1
  •   M. Deinum    6 年前

    用于弹簧引导自动配置 MessageSource checks the existence <basename>.properties . 如果存在一个 信息源 已配置,否则不会配置任何内容,也不会解析任何消息。

    要修复,请添加一个空 <basename>。属性 src/main/resource 拥有 消息源 自动配置。

        2
  •  0
  •   Chloe    6 年前

    添加空 messages.properties 修复了在 above comment . 非常奇怪和不直观的错误信息。如果这个评论是作为一个答案给出的,我会接受的。

    推荐文章