首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring:设置区域设置

Spring:设置区域设置
EN

Stack Overflow用户
提问于 2011-06-22 10:39:54
回答 6查看 37.5K关注 0票数 8

我已经按照下面的指南中指定的方式设置了Spring:http://www.springbyexample.org/examples/basic-webapp-internationalization-spring-config.html

例如,如果我将?locale=fr附加到网址的末尾,则区域设置将更改为法语。

但是,在我的示例中,我希望在用户登录时设置区域设置,因为此信息与他们的配置文件相关联。我尝试使用localeResolver.setLocale(request,response,new Locale("fr")) (其中localeResolver是SessionLocaleResolver的一个实例)来指定区域设置,但是这没有任何效果。

知道我做错了什么吗?我处理这个问题的方式正确吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-10-19 01:51:31

localeResolver.setLocale对我来说很好,试试这样的东西:

applicationContext

代码语言:javascript
复制
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"
    p:basename="messages/messages" p:fallbackToSystemLocale="false" />

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

my_page.jsp

代码语言:javascript
复制
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<html>
    <body>
        <p><spring:message code="my.message"/></p>  
    </body>
</html>

\src\main\resources\messages\messages.properties

my.message=Message (默认语言)

\src\main\resources\messages\messages_en.properties

英文版的

my.message=Message

\src\main\resources\messages\messages_fr.properties

法语中的

my.message=Message

控制器

代码语言:javascript
复制
@Controller
@RequestMapping("/")
public class SampleController {
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String welcome(HttpServletRequest request, HttpServletResponse response) {
        LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
        localeResolver.setLocale(request, response, StringUtils.parseLocaleString("fr"));
        return "my_page";
    }
}

如果我把"fr“改成"en”,我会得到"Message in English",如果没有setLocale调用,我会得到"Message (default language)“。将StringUtils.parseLocaleString("fr")更改为新的语言环境(“fr”)会得到相同的结果。

票数 15
EN

Stack Overflow用户

发布于 2012-11-13 01:07:47

我建议尝试将默认语言环境设置为:

代码语言:javascript
复制
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
     <property name="defaultLocale" value="fr_FR" />
 </bean>

在博客文章Configuring locale switching with Spring MVC 3中有一些有用的信息。

票数 6
EN

Stack Overflow用户

发布于 2018-10-11 00:59:46

示例:

代码语言:javascript
复制
@Configuration
public class i18nConfiguration extends WebMvcConfigurerAdapter {

    @Bean
    public LocaleResolver localeResolver() {
        SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
        Locale locale = new Locale("fr", "FR");
        sessionLocaleResolver.setDefaultLocale(locale);
        return sessionLocaleResolver;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6434309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档