GWT中的服务器端配置常量

4

我需要一些配置文件,在我的GWT应用程序中可以在不重新编译项目的情况下进行更改。然而,GWT i18n不允许在服务器端使用。

那么如何使配置常量可在服务器端使用呢?

谢谢。

2个回答

2
将GWT i18n接口在服务器端工作起来很容易,只需使用java.lang.reflect.Proxy
  1. 我们的团队将GWT i18n属性文件放置在与其生成的com.google.gwt.i18n.client.Messages类相同的位置。然后将它们部署在类文件的同一目录下,通常是在/classes下的某个位置,因此它们位于Web应用程序的类路径中。

  2. 从已部署的属性文件中读取ResourceBundle。通过前面的步骤,找到属性文件很容易:它的名称就是GWT i18n接口的名称。

  3. 在服务器端对GWT i18n接口进行代理,并使用代理的InvocationHandlerResourceBundle中查找正确的属性。找到正确的属性也很容易:它的名称就是调用的Method的名称。

现在您已经在服务器上创建了GWT i18n接口。您可以编辑属性文件并重新部署而无需重新编译。但是更改后的常量不会在客户端中被捕获。

0
如果您只需要在服务器端使用它们,那么请使用标准的 java.util.Properties 类。如果您想在客户端和服务器端之间共享常量,则可以创建一个额外的 RPC 服务调用来获取属性列表。

但是 java.util.Properties 为执行极其简单的任务需要大量代码。我有点认为 GWT 对此有一个“更智能”的解决方案,因为它对客户端常量有一个智能的解决方案。 - Claus Jørgensen
似乎在WAR归档文件中部署Java时,Java的相对路径完全是猜测,真是让人抓狂。-.- - Claus Jørgensen
我同意,但GWT代码是客户端的,并且针对此进行了优化。你可能会找到其他适合你需求的库。我很久以前就写了这段代码,而且现在还在使用它。 - Drejc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接