我正在努力将一些遗留代码更新到 GWT 2,我遇到了一些奇怪的行为。我有一个根据 gwt 文档扩展 ClientBundle 的自定义接口。在该包中,我定义了几个 CssResources 来指向我的模块的各种 .css 文档。当我去实际初始化我的模块时,问题就来了。我在初始化程序中有一些代码可以获取对每个 CssResource 的静态引用并调用 ensureInjected()。问题是,只有第一个调用实际上做任何事情。任何后续调用似乎都被忽略了,css 样式也没有添加到应用程序中。我需要做什么才能为单个模块处理多个 css 文档?
CssBundle.java
public interface CssBundle extends ClientBundle {
public static final CssBundle INSTANCE = (CssBundle) GWT.create(CssBundle.class);
/* CSS */
@Source("mypath/public/Client.css")
public ClientCss mainCSS();
@Source("mypath/resources/css/mini/ext-all.css")
public ExtAllCss extAllCSS();
}
ClientCss.java
public interface ClientCss extends CssResource {
String applicationTitle();
String branding();
String bugReportDirections();
@ClassName("Caption")
String caption();
}
ExtAllCss.java
public interface ExtAllCss extends CssResource {
@ClassName("close-icon")
String closeIcon();
@ClassName("close-over")
String closeOver();
@ClassName("col-move-bottom")
String colMoveBottom();
}
我的模块.java
public class MyModule extends Composite
{
public void initialize()
{
//this css shows up in the client
CssBundle.INSTANCE.mainCSS().ensureInjected();
//this does nothing
CssBundle.INSTANCE.extAllCSS().ensureInjected();
}
}