如何在GWT中检查代码是在服务器端还是客户端执行?

den*_*enu 12 java gwt

我有一个用于服务器端和客户端的类.如何在构造函数中检查它是从客户端还是从服务器类调用的?

我已经用脏方式完成了 - 只要尝试GWT.create()方法抛出异常,如果是,运行服务器端代码.但是我怎么能避免这个呢?

    public PrintManager() {
    try {
        factory = GWT.create(MapConfigFactory.class);   //clientsiede factory creation
    } catch (Exception ex) {
        factory = AutoBeanFactorySource.create(MapConfigFactory.class); //serverside factory creator
    }
}
Run Code Online (Sandbox Code Playgroud)

Wit*_*tek 19

com.google.gwt.core.client.GWT.isScript()true当代码在客户端上作为JavaScript运行时返回.

com.google.gwt.core.client.GWT.isClient()false代码在服务器JVM(共享代码)上运行时返回.

  • 当在eclipse嵌入模式下运行时,GWT 2.5总是为GWT.isScript()返回false,即无论[server | client]端代码如何 (3认同)