我使用这个简单的配置
<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>
很好但是如果有人会向其他人发送网址怎么办?这仅适用于客户端浏览器,如果用户更改了本地化,则会设置cookie。我见过很多网站,他们在网址中的第一个斜线后进行了本地化(例如nette.org/en/about
)。当有人发送此链接时,它将根据网址解析本地化。在spring框架中是否存在任何简单的解决方案?不知何故在url中映射这个地方?
答案 0 :(得分:-1)
而不是 CookieLocaleResolver 使用 SessionLocaleResolver 。
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<property name="defaultLocale" value="en"/>
</bean>
我认为这可以解决您的问题。
干杯。