如何解决使用链接更改Spring MVC 3语言环境不起作用
| 编辑:我的Spring框架版本3.0.5 这里有个小问题,当我单击语言更改器链接时,语言没有更改。 语言文件(messages_xx.properties)在classpath i18n目录中。这些文件是:i18n/messages_en.properties
i18n/messages_ar.properties
弹簧配置
<!-- Component scanner. This is used to automatically find Spring annotations like @Service and @Repository -->
<context:component-scan base-package=\"com.keype\" />
<!-- Annotation driven programming model -->
<mvc:annotation-driven />
<context:annotation-config />
<mvc:resources mapping=\"/static/**\" location=\"/static/\" />
<!-- Session Object Configuration -->
<bean id=\"session\" class=\"com.keype.system.Session\" scope=\"session\">
<aop:scoped-proxy />
</bean>
<!-- The View Resolver -->
<bean id=\"viewResolver\"
class=\"org.springframework.web.servlet.view.InternalResourceViewResolver\"
p:prefix=\"/WEB-INF/jsp/\"
p:suffix=\".jsp\"
/>
<!-- i18n Configuration. Default language is english. Change language using ?language=en -->
<bean id=\"localeChangeInterceptor\" class=\"org.springframework.web.servlet.i18n.LocaleChangeInterceptor\">
<property name=\"paramName\" value=\"lang\" />
</bean>
<bean id=\"localeResolver\" class=\"org.springframework.web.servlet.i18n.SessionLocaleResolver\">
<property name=\"defaultLocale\" value=\"en\" />
</bean>
<!-- Message text files. This is set UTF-8 to display Arabic UTF correctly. -->
<bean id=\"messageSource\" class=\"org.springframework.context.support.ReloadableResourceBundleMessageSource\">
<property name=\"basename\" value=\"classpath:i18n/messages\" />
<property name=\"defaultEncoding\" value=\"UTF-8\"/>
</bean>
JSP代码的一部分
<a href=\"?lang=ar\"><spring:message code=\"header.arabic\" /></a> |
<a href=\"?lang=en\"><spring:message code=\"header.english\" /></a>
问题是,当我单击上面的链接来更改语言时,更改语言环境的功能不起作用。我通过将\“ defaultLocate \”更改为\“ ar \”进行测试,然后得到阿拉伯文本。
这里可能出什么问题了? Tomcat日志中也没有任何内容。
解决方法
您必须在MVC拦截器中注册localeChangeInterceptor,Spring-MVC才能考虑使用它。将拦截器添加到配置中:
<mvc:interceptors>
<bean class=\"org.springframework.web.servlet.i18n.LocaleChangeInterceptor\">
<property name=\"paramName\" value=\"lang\"></property>
</bean>
</mvc:interceptors>
,
<mvc:interceptors>
<bean class=\"org.springframework.web.servlet.i18n.LocaleChangeInterceptor\"
p:paramName=\"lang\" />
</mvc:interceptors>
<bean id=\"localeResolver\"
class=\"org.springframework.web.servlet.i18n.CookieLocaleResolver\">
<property name=\"defaultLocale\" value=\"en\" />
</bean>
,可以帮助他人的另一件事:
就我而言,我必须添加applicationContext.xml。将其放在spring-servlet(参考调度程序)中,根本不起作用。
,您需要在mvc拦截器标签内注册LocaleChangeInterceptor,如下所示:
例如。
<mvc:interceptors>
<bean class=\"org.springframework.web.servlet.i18n.LocaleChangeInterceptor\">
<property name=\"paramName\" value=\"siteLanguage\" />
</bean>
</mvc:interceptors>
我遇到了同样的错误,并且使用此代码有效:-)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。