我正在尝试将常量(ConstantsWithLookup)存储在服务器端的客户端中,但它无法弄清楚如何做到这一点。我的常量接口和常量属性位于同一文件夹中。
我尝试过其他类似线程的提示,但没有成功。
我尝试了Hermes,gwt-i18n-server,gwt-dmesg,GTWI18N,使用ResourceBundle,试图获取源文件属性。
对于前两个,似乎主要原因是对最新GWT版本的过时支持。至于资源包,它找不到属性文件,因为在部署时,没有属性文件,只有一个常量.class。
我试图避免将我的属性文件更改为另一个位置(如/WEB-INF/constants)。
我正在使用带有GWT 2.5.0.rc1的爱马仕,它工作正常。用法:
- 把Hermes-1.2.0.jar投入战争/WEB-INF/lib
- 然后在服务器端写一些类似的东西
MyConstantsWithLookup my = Hermes.get(MyConstantsWithLookup.class, "de");
String string = my.getString(key);
- 属性文件
MyConstantsWithLookup.properties
必须与MyConstantsWithLookup.java
存在于同一个包中,即使该属性文件为空(如果您使用@DefaultStringValue等,也可能是这种情况) - 还要添加
MyConstantsWithLookup_de.properties
等。 - 确保在编译时将这些属性文件复制到类旁边。Javac 不会这样做,所以它必须在额外的构建步骤中完成(Eclipse 通常会自动执行此操作,但当你使用 Ant 进行构建时,它不会自行发生)
- 许多构建设置在编译服务器端时会跳过"客户端"包中的 java 和属性文件。在这种情况下,请将常量文件放在"共享"包中(如果有的话)。