spring MVC 如何在java端获取国际化message
在jsp端我用的是JSTL的<fmt:message>,在java端怎么获取国际化消息那?通过那个类和方法那? spring mvc 国际化 jstl --------------------编程问答-------------------- <beans:beanclass="org.springframework.context.support.ReloadableResourceBundleMessageSource"
id="messageSource" p:basenames="WEB-INF/i18n/messages"
p:fallbackToSystemLocale="false" />
配置上是这么做,获取直接用Spring的getBean获取 --------------------编程问答-------------------- spring mvc我代码基本看过,最经典的,可扩展的
public static String getLocaleMessage(HttpServletRequest request,Object[] args,String code){
WebApplicationContext ac = RequestContextUtils.getWebApplicationContext(request);
return ac.getMessage(code,args, RequestContextUtils.getLocale(request));
}
args可以为null,如果你request也不提供的话可以通过threadLocale获得request
/**
* @return {@link HttpServletRequest}
*/
private static HttpServletRequest getRequest() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
} --------------------编程问答-------------------- 国际化LocaleResolver有四个实现类
固定,根据header,session,cookie
后面连个要自己设,
主题页有类似功能 --------------------编程问答-------------------- 如果没有request,
就直接取
public static String getMessage(String key, Locale locale)
{
ResourceBundle resourceBundle = ResourceBundle.getBundle(Global.RESOURCES_PATH,
locale);
if (resourceBundle.containsKey(key))
{
return resourceBundle.getString(key);
}
return key;
}
补充:Java , Java EE