Struts 2(版本2.3.28)仅接受已注册的区域设置
在Struts 2版本2.3.28中, i18n
拦截器只接受注册到jvm的语言环境,该语句由Locale.getAvailableLocales()
返回。
好吧,虽然我可以扩展可用的Java语言环境列表,如上所述如何扩展可用的Java语言环境列表 ,是否设置此拦截器接受所有字符串作为语言环境的简短方法(例如fa_IR
)?
请注意:将默认语言环境设置为fa_IR
( )可以正常工作。
不,你必须创建自己的拦截器,扩展i18n
并覆盖此方法
protected Locale getLocaleFromParam(Object requestedLocale) { Locale locale = null; if (requestedLocale != null) { locale = (requestedLocale instanceof Locale) ? (Locale) requestedLocale : LocalizedTextUtil.localeFromString(requestedLocale.toString(), null); if (locale != null && LOG.isDebugEnabled()) { LOG.debug("applied request locale=#0", locale); } } if (locale == null) { locale = Locale.getDefault(); } return locale; }