Controller代码 /**
* 设置当前session的语言
* [zh/en]
* @param request
* @return
*/
protected void setSessionLocal(HttpServletRequest request,String langType){
Locale locale;
if(langType.equals("zh")){
locale = new Locale("zh", "CN");
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale);
}
else if(langType.equals("en")){
locale = new Locale("en", "US");
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale);
}
else {
locale=LocaleContextHolder.getLocale();
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,LocaleContextHolder.getLocale());
}
//设置session_locale
request.getSession().setAttribute(CwsConstants.SESSION_LOCALE_KEY, CwsUtils.isNotNull(langType)?langType:CwsConstants.SESSION_LOCALE_KEY_DEFALUT);
}
/**
* 是否已经设置语言参数
* @param request
* @return
*/
protected boolean isSetSessionLocal(HttpServletRequest request){
HttpSession session =request.getSession();
Locale local =(Locale) session.getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME);
String langType = (String) session.getAttribute(CwsConstants.SESSION_LOCALE_KEY);
if(CwsUtils.isNotNull(langType) && local!=null){
return true;
}else{
return false;
}
}
/**
* 获取值从i18n中
* @param request
* @return
*/
protected final String getI18nValue(HttpServletRequest request,String key){
RequestContext requestContext = new RequestContext(request);
return requestContext.getMessage(key);
}
/**
* 获取当前local值,主要用于菜单国际化[en/zh]
* @param request
* @return
*/
protected final String getI18nLocale(HttpServletRequest request){
HttpSession session =request.getSession();
Locale local =(Locale) session.getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME);
String langType = (String) session.getAttribute(CwsConstants.SESSION_LOCALE_KEY);
if(CwsUtils.isNotNull(langType) && local!=null){
return langType;
}else
return CwsConstants.SESSION_LOCALE_KEY_DEFALUT;
}