Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.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 使用Locale和ClientBundle支持GWT多租户_Java_Gwt_Internationalization_Multi Tenant_Clientbundle - Fatal编程技术网

Java 使用Locale和ClientBundle支持GWT多租户

Java 使用Locale和ClientBundle支持GWT多租户,java,gwt,internationalization,multi-tenant,clientbundle,Java,Gwt,Internationalization,Multi Tenant,Clientbundle,我正在尝试将多租户功能引入我现有的GWT应用程序。要求如下: 使用公司特定的CSS和图像 文本几乎没有变化 对实际应用程序逻辑的一些更改 目前,我的应用程序有一个ClientBundle,其中包含所有图像和CSS,可通过静态常量访问: public interface MyRes extends ClientBundle { public static final MyRes RES = GWT.create(myRes.class); ... } Image image =

我正在尝试将多租户功能引入我现有的GWT应用程序。要求如下:

使用公司特定的CSS和图像 文本几乎没有变化 对实际应用程序逻辑的一些更改 目前,我的应用程序有一个ClientBundle,其中包含所有图像和CSS,可通过静态常量访问:

public interface MyRes extends ClientBundle {
    public static final MyRes RES =  GWT.create(myRes.class);
    ...
}
Image image = new Image(MyRes.RES.myLogo());
我的文本都在一个大的Java属性文件中,该文件被解析为一个

我的想法是为文本和文本设置不同的区域设置。我仍然不确定如何根据公司装载不同的ClientBundle。我是否需要创建一个抽象ClientBundle并将其继承到CompanyA和CompanyB ClientBundle中


我的主要问题是,这是否是一个好的解决方案,或者是否有其他我优雅的方式

您可以在编译时或运行时执行此操作。你的选择。在编译时,您必须为每个客户机构建一个GWT模块,或者为每个客户机构建多个置换。在运行时,您必须下载所需的规则,然后执行一些逻辑来确定要显示什么以及如何显示。不过,这两种解决方案都不是很容易实现的。通过外观模式和附加属性(如locale和useragent),您可以非常接近解决方案一。首先,在重新绑定规则中,使每个规则取决于所设置属性的每个变体。