我需要一些帮助来解决以下问题。我们有一个现有的 Web 应用程序,根本不使用框架(仅使用 servlet),我们需要添加新功能,但我们不是将新的 servlet 添加到 web.xml
中,而是添加 Struts 1与 Spring 一起。
由于该项目已经存在,我们必须配置 Struts 以便能够与已有的约定相处。其中之一是本地化。
所有可本地化文本都来 self 们的数据库,而不是使用 .property 文件,因此我实现了自己的 MessageResourcesFactory 和 MessageResources 类。问题是,在我们的应用程序中,我们从名为“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/