1

我正在尝试根据客户端机器的操作系统语言环境让我的应用程序工作。现在它适用于服务器机器的语言环境。我正在使用字符串框架工作。Apache Tomcat 7 用作服务器。这是我使用的配置。任何帮助都将不胜感激。

     <bean id="localeResolver"
        class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
        <property name="defaultLocale" value="en" />
    </bean>

    <bean id="localeChangeInterceptor"
        class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="language" />
    </bean>


    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" >
        <property name="interceptors">
            <list>
                <ref bean="localeChangeInterceptor" />
            </list>
        </property>
    </bean>


<!--     Register the welcome.properties -->
    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basenames">
                    <list>
                        <value>i18n.api/api</value>
                        <value>i18n.exceptions/exceptions</value> 
                        <value>i18n.common/common</value>   
                        <value>i18n.login/login</value>
                        <value>i18n.plan/plan</value>
                        <value>i18n.customer/customer</value>
                        <value>org.springframework.security.messages</value> 
                        <value>org.hibernate.validator.ValidationMessages</value> 
                    </list>
                </property>
    </bean>
4

1 回答 1

0

请参阅Spring doc 上支持的处理程序方法参数类型。您可以像这样在处理程序方法中注入用户的区域设置:

@RequestMapping("/home")
public String home(Locale userLocale) {
    // do something with userLocale

    return "home";
}

语言环境是 java.util.Locale 类型。

也看看ServletRequestgetLocale()的方法。客户端必须在其请求中提供 Accept-Language 标头,否则使用服务器的语言环境。我假设 Spring 的行为方式与此相同

于 2013-06-03T06:58:39.490 回答