处理spring i18n。我在spring-mvc.xml中定义了两个bean
<bean name="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
<bean name="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="defaultLocale" value="en" />
</bean>和jsp中的两个锚来切换语言。
<span>
<a href="?lang=en">english</a>
|
<ahref="?lang=zh">chinese</a>
</span>我试图在我的控制器上获得参数lang/locale,并在javascripts之前获得i18n结果(因为我想要i18n java脚本),但是不起作用。
request.getLocale().getDisplayName();
request.getParameter("lang");如何在我的控制器上获得Locale?或者i18n java脚本有什么好主意?
提前感谢!
发布于 2013-07-05 10:05:32
如果您想在Java中更改为另一个地区,可以使用:
字符串RequestContextUtils.getLocaleResolver(request).setLocale(request,anotherLocale="es";
发布于 2014-05-17 09:39:07
查看Spring参数引用:http://docs.spring.io/spring/docs/4.0.0.RELEASE/spring-framework-reference/htmlsingle/#mvc-ann-arguments
支持的方法参数类型 ..。 针对当前请求区域设置的
java.util.Locale,由可用的最特定的区域设置解析器确定,实际上是Servlet环境中配置的LocaleResolver。
这意味着您可以在Controller方法中简单地使用java.util.Locale参数,并且Spring将为该参数分配当前解析的区域设置:
@RequestMapping(value = "/{viewName}", method = GET)
public String handle(@PathVariable String viewName, Locale locale) {
return "info/" + locale.getLanguage() + '/' + viewName;
}发布于 2013-06-27 01:58:45
@Controller
public class MyController{
@RequestMapping(value = "/test")
public test(HttpServletRequest request, HttpServletResponse response){
Locale locale = RequestContextUtils.getLocale(request);
System.out.println("Locale >>> " + locale);
}
}结果:
Locale >>> enhttps://stackoverflow.com/questions/17315058
复制相似问题