【问题标题】:LocaleContextHolder.setLocale void cannot be converted to localeLocaleContextHolder.setLocale void 无法转换为语言环境
【发布时间】:2017-09-19 08:02:08
【问题描述】:
@RequestMapping(method = RequestMethod.GET)
    public ModelAndView viewMain(Locale locale) {

        Locale currentLocale = LocaleContextHolder.setLocale(Locale.US);
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("locale", currentLocale);
        LOG.info("main " /* + name*/ + "page shown");
        modelAndView.setViewName("main_page");
        return modelAndView;
    }

当我尝试将本地设置设置为 Locale.US 时,我收到一个错误,即 void 无法转换为本地设置。但是 Locale.US 并非无效。如果我将 setLocale 更改为 getLocale() 一切正常。

【问题讨论】:

标签: spring spring-mvc internationalization


【解决方案1】:

这是因为LocaleContextHolder.setLocale() returns void

所以只要把它设置在那里并在下面得到它:

@RequestMapping(method = RequestMethod.GET)
    public ModelAndView viewMain(Locale locale) {

        LocaleContextHolder.setLocale(Locale.US);
        Locale currentLocale = LocaleContextHolder.getLocale();
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("locale", currentLocale);
        LOG.info("main " /* + name*/ + "page shown");
        modelAndView.setViewName("main_page");
        return modelAndView;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-09
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多