1

我使用这个简单的配置

    <beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <beans:property name="basename" value="classpath:localization/messages" />
        <beans:property name="defaultEncoding" value="UTF-8" />
    </beans:bean>

    <interceptors>
        <beans:bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
            <beans:property name="paramName" value="lang" />
        </beans:bean>
    </interceptors>

    <beans:bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
        <beans:property name="defaultLocale" value="en" />
        <beans:property name="cookieMaxAge" value="100000" />
    </beans:bean>

效果很好,但是如果有人将 url 发送给其他人怎么办?这仅适用于客户端浏览器,如果用户更改本地化,它将设置一个 cookie。我已经看到很多网站在 url 中的第一个斜杠(例如nette.org/en/about)之后进行了本地化。当有人发送此链接时,它将根据 url 解析本地化。在 spring 框架中是否存在任何简单的解决方案来做到这一点?以某种方式在 url 中映射这个地方?

4

1 回答 1

-1

而不是CookieLocaleResolver使用SessionLocaleResolver

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

我认为这应该可以解决您的问题。

干杯。

于 2012-05-19T09:21:51.763 回答