Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Struts 1.2.9-关于自定义国际化的问题_Java_Internationalization_Customization_Struts 1 - Fatal编程技术网

Java Struts 1.2.9-关于自定义国际化的问题

Java Struts 1.2.9-关于自定义国际化的问题,java,internationalization,customization,struts-1,Java,Internationalization,Customization,Struts 1,我们有一个使用Struts 1.2.9的遗留应用程序。该应用程序目前以标准方式国际化-.properties文件,用于所有UI标签、错误、消息等定义在所有JSP中的用法。到目前为止,这种方法一直很有效,但事实上,应用程序本身是一个框架,用于数百个(是的,100个!)其他应用程序内部使用的服务 我们需要扩展i18n功能,如下所示: 为.properties文件定义一个自定义目录-这样就超出了类路径的范围;基本上不在.war包中。其思想是只支持消息字符串更改,而不需要重新部署整个应用程序 此自定义目

我们有一个使用Struts 1.2.9的遗留应用程序。该应用程序目前以标准方式国际化-
.properties
文件,用于所有UI标签、错误、消息等<使用默认的
Factory
MessageResources
定义对
struts config.xml
中的每个.properties文件进行编码>定义<代码>在所有JSP中的用法。到目前为止,这种方法一直很有效,但事实上,应用程序本身是一个框架,用于数百个(是的,100个!)其他应用程序内部使用的服务

我们需要扩展i18n功能,如下所示:

  • .properties
    文件定义一个自定义目录-这样就超出了类路径的范围;基本上不在
    .war
    包中。其思想是只支持消息字符串更改,而不需要重新部署整个应用程序
  • 此自定义目录还将包含每个受支持应用程序的消息-这可能只是现有消息的子集,也可能是专门为该应用程序定制的整个资源集
  • 支持基于每个请求的自定义方式
    Locale
    设置-排除所有其他考虑因素(默认堆栈、类路径/包查找等),这类似于
    I18nInterceptor
    在Struts2中使用
    requestOnlyParameterName
    属性设置为
    true
    的方式
  • 是的,我知道同时加载几百个包会占用大量内存,但在我们的情况下这是可以接受的

    感谢您的帮助-无论是指导、示例代码等

    注意:我完全同意转移到更新的UI平台可能是最好的解决方案。但我们不能


    TIA。

    我在spring项目中也有类似的需求,不仅是i18n,还有web服务端点和其他类型的属性

    我们通过将放置属性文件的目录添加到服务器启动配置文件的类路径中来实现这一要求

    在WebLogic11G(预生产和生产)和tomcat服务器(开发环境)中测试和工作


    希望有助于实现您自己的MessageResources和MessageResourcesFactory。想法?谢谢你的建议,弗朗西斯科。如果我没记错的话,在定义时,定义要从中拾取属性文件的包名称。如果我有一个包含许多子目录的根目录,每个子目录可能包含多个bundle,那么我认为仅此类路径设置是行不通的。您将需要一种机制,通过该机制,应该从根目录下该应用程序的相应目录中选择每个请求、区域设置以及相应的属性包。