gpt4 book ai didi

struts2 - 泰米尔语言选项在 struts 2.3.29 中不起作用

转载 作者:行者123 更新时间:2023-12-02 21:25:55 30 4
gpt4 key购买 nike

我有一个多语言 struts 应用程序,最近我将 struts 从 2.3.20 升级到 2.3.29。升级后,泰米尔语不起作用,即即使我们选择泰米尔语,文本也会以英语显示。

当我们选择泰米尔语时,我检查了区域设置,它是正确的,即 request_locale=ta_IN

我尝试在自定义拦截器类中扩展 I18nInterceptor ,然后覆盖 getLocaleFromParam() 方法如下。这也行不通。

因此,如果你们有解决此问题的方法,请告诉我。

泰米尔语在 Struts 2.3.20 中运行良好

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) {
logger.debug("applied request locale="+locale);
}
}
return locale;
}

最佳答案

您需要更改替换拦截器。

struts 中默认的堆栈定义如下( https://struts.apache.org/docs/struts-defaultxml.html ):

<interceptor-stack name="defaultStack">
<interceptor-ref name="exception"/>
<interceptor-ref name="alias"/>
<interceptor-ref name="servletConfig"/>
<interceptor-ref name="i18n"/>
<interceptor-ref name="prepare"/>
<interceptor-ref name="chain"/>
<interceptor-ref name="scopedModelDriven"/>
<interceptor-ref name="modelDriven"/>
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="checkbox"/>
<interceptor-ref name="datetime"/>
<interceptor-ref name="multiselect"/>
<interceptor-ref name="staticParams"/>
<interceptor-ref name="actionMappingParams"/>
<interceptor-ref name="params"/>
<interceptor-ref name="conversionError"/>
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-ref name="workflow">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-ref name="debugging"/>

您需要定义自己的拦截器并将其添加到默认堆栈

    <interceptor name="customi18n"
class="foo.bar.CustomI18NInterceptor" />

并将其添加到您自己的堆栈中:

//Give a new name to your stack
<interceptor-stack name="customDefaultStack">
<interceptor-ref name="exception"/>
<interceptor-ref name="alias"/>
<interceptor-ref name="servletConfig"/>
//Replace your customi18n interceptor
<interceptor-ref name="customi18n"/>
//Same as above
.....

将此堆栈设为默认堆栈

<default-interceptor-ref name="customDefaultStack"/>

关于struts2 - 泰米尔语言选项在 struts 2.3.29 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39828162/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com