5

我正在尝试获取存储在服务器端客户端中的常量(ConstantsWithLookup),但它无法弄清楚如何去做。我的常量接口和常量属性在同一个文件夹中。

我尝试了其他类似线程的提示,但没有成功。

我使用 ResourceBundle 尝试了 Hermes、gwt-i18n-server、gwt-dmesg、GTWI18N,试图获取源文件属性。

对于前两个,似乎主要原因是对最新 GWT 版本的过时支持。至于 ResourceBundle,它找不到属性文件,因为在部署时,没有属性文件,只有一个 Constants.class。

我试图避免将我的属性文件更改到另一个位置(如 /WEB-INF/constants)。

4

1 回答 1

9

我正在使用带有 GWT 2.5.0.rc1 的Hermes,它工作正常。用法:

  • 将hermes-1.2.0.jar 放入war/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 和属性文件。在这种情况下,将常量文件放在“共享”包中(如果有的话)。
于 2012-10-03T19:56:18.630 回答