java - 如何从 Spring MVC 获取当前使用的区域设置?

标签 java spring spring-mvc

我有以下表格。

<form id="langForm" action="" method="get">
    <select name="lang" id="lang" class="styled" onchange="this.form.submit();">
        <option value="pl" ${param.lang == 'pl' ? 'selected' : ''} >PL</option>
        <option value="en" ${param.lang == 'en' ? 'selected' : ''} >EN</option>
    </select>
</form>

Spring MVC 设置语言参数并关心 i18n/l10n。我想更改 ${param.lang} 以让它通过 Spring MVC 从 session 中获取当前用户语言,因为 lang 参数不一定出现在每个请求中。我怎样才能实现这个目标?

最佳答案

在您的 xml 配置中添加以下内容:

...

<mvc:interceptors>
        <bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor" />
        <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"
            p:paramName="lang" />
    </mvc:interceptors>

<bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="classpath:messages" />
        <property name="defaultEncoding" value="UTF-8" />
    </bean>
    <bean class="org.springframework.web.servlet.i18n.CookieLocaleResolver"
        id="localeResolver" p:cookieName="locale" />
...

将代码替换为:

<form id="langForm" action="" method="get">
    <select name="lang" id="lang" class="styled" onchange="this.form.submit();">
        <option value="pl">PL</option>
        <option value="en">EN</option>
    </select>
</form>

通过此配置,所选的区域设置将保存在 cookie 浏览器中。

不要忘记标签中文件开头的命名空间: xmlns:mvc="http://www.springframework.org/schema/mvc" 和

xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd

教程 here

关于java - 如何从 Spring MVC 获取当前使用的区域设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5377373/

相关文章:

java - Spring WS : Handle connection refused and client timeout exceptions

java - hibernate 缓存和 Spring 框架缓存有什么区别?

Spring Web Reactive Framework 多部分文件问题

java - Spring Data JPA - 带模式匹配的不区分大小写的查询

java - driver.findElement() 带有 iframe 和没有 ID 的元素

java - 使用 java 运行 .sh 文件

java - 使用文件java代码中的arraylist进行登录?

java - 如何将一个 bean 的构造函数参数传递给嵌套 bean

java - Spring中的@RequestBody和@ResponseBody注解

Java 监视服务 : Not Working for Remote Files mounted in the local Server