我正在研究一种门户产品。我在使其国际化方面遇到了问题。我 使用以下代码
Locale locale = new Locale(languageHashMap.get(preferredLanguageId));
ActionContext.getContext().setLocale(locale);
session.setAttribute(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE, locale);
用于设置区域设置。
有一段时间它工作正常但是当我再次更改语言时再次更改语言时,更改并未反映在所有页面中。仍然只能使用最后一种语言进行更改。 任何帮助将不胜感激
答案 0 :(得分:1)
我猜该语言环境设置不正确。 试试下面的代码:
创建一个地图
private static Map<Locale, ResourceBundle> messageBundles = new Hashtable<Locale, ResourceBundle>();
然后使用以下内容:
Locale requestLocale = ActionContext.getContext().getLocale();
ResourceBundle rb = messageBundles.get(requestLocale);
然后将该资源包放在请求范围内。
答案 1 :(得分:0)
工作正常......
Locale locale = new Locale(languageHashMap.get(preferredLanguageId));
ActionContext.getContext().setLocale(locale);
session.setAttribute(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE, locale);