NRa*_*Raf 6 spring localization internationalization
我按照以下指南中的说明设置了Spring:http://www.springbyexample.org/examples/basic-webapp-internationalization-spring-config.html
例如,如果我要将?locale = fr附加到URL的末尾,则语言环境将更改为法语.
但是,在我的情况下,我想在用户登录时设置区域设置,因为此信息与其配置文件相关联.我试着使用localeResolver.setLocale(请求,响应新的区域("FR"))(其中的LocaleResolver是SessionLocaleResolver的一个实例)指定区域然而,这并没有任何影响.
知道我做错了什么吗?我是否以正确的方式处理这个问题?
Joh*_*n29 13
localeResolver.setLocale对我来说很好,尝试这样的事情:
的applicationContext
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"
p:basename="messages/messages" p:fallbackToSystemLocale="false" />
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
Run Code Online (Sandbox Code Playgroud)
my_page.jsp
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<html>
<body>
<p><spring:message code="my.message"/></p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
\ SRC \主\资源\信息\ messages.properties
my.message =消息(默认语言)
\ SRC \主\资源\信息\ messages_en.properties
my.message =英文消息
\ SRC \主\资源\信息\ messages_fr.properties
my.message =法语留言
调节器
@Controller
@RequestMapping("/")
public class SampleController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String welcome(HttpServletRequest request, HttpServletResponse response) {
LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
localeResolver.setLocale(request, response, StringUtils.parseLocaleString("fr"));
return "my_page";
}
}
Run Code Online (Sandbox Code Playgroud)
使用此代码,我得到"法语消息",如果我将"fr"改为"en",我会收到"英语消息",如果没有setLocale调用,我会得到"消息(默认语言)".将StringUtils.parseLocaleString("fr")更改为新的Locale("fr")会得到相同的结果.
我建议尝试将默认语言环境设置为:
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<property name="defaultLocale" value="fr_FR" />
</bean>
Run Code Online (Sandbox Code Playgroud)
一些有用的信息在博客文章中使用Spring MVC 3配置语言环境切换.
| 归档时间: |
|
| 查看次数: |
31218 次 |
| 最近记录: |