java - Struts 1 自定义本地化

标签 java localization internationalization struts1

我需要一些帮助来解决以下问题。我们有一个现有的 Web 应用程序,根本不使用框架(仅使用 servlet),我们需要添加新功能,但我们不是将新的 servlet 添加到 web.xml 中,而是添加 Struts 1与 Spring 一起。

由于该项目已经存在,我们必须配置 Struts 以便能够与已有的约定相处。其中之一是本地化。

所有可本地化文本都来 self 们的数据库,而不是使用 .property 文件,因此我实现了自己的 MessageResourcesFactoryMessageResources 类。问题是,在我们的应用程序中,我们从名为“LANGUAGE”的整数 session 属性获取用户语言,而不是从区域设置属性“org.apache.struts.action.LOCALE”获取用户语言。 Strong> Struts 默认使用的。

问题是这样的。如何告诉 Struts 从自定义 Integer 属性而不是标准 Locale 属性中获取用户语言?

谢谢。

最佳答案

据我所知,没有直接的方法告诉 Struts 使用另一个 session 属性来使用区域设置。即使 Struts 可以做到这一点,您也需要在自定义整数和“真实”Locale 对象之间实现映射。

我的建议:

  • 实现您自己的 javax.servlet.http.HttpSessionAttributeListener,它将 LANGUAGE 属性同步到相应的 Struts 区域设置属性
  • 或者更改设置 LANGUAGE 属性的代码以同时设置 Struts session 属性

关于java - Struts 1 自定义本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20707276/

相关文章:

java - 正则表达式查找字符串中的数字

java - 如何更有效地使用@Nullable 和@Nonnull 注解?

java - Java Swing 应用程序中的希腊语/拉丁语科学 JLabel

internationalization - 为什么人们使用简单的英语作为翻译占位符?

通过 JNI 从 native 线程回调时 Java 线程泄漏

c# - 从 LINQ to SQL 调用 SQL Server 存储过程时无法将 nvarchar 转换为日期时间

javascript - 字符串和标签本地化和全局化的最佳实践

c# - 根据请求动态更改语言资源的好方法

angularjs - Angular 翻译:确定首选语言和注册可用语言 key 问题

java - 使用此方法时遇到一些问题