我有一个GWT问题,
我正在尝试将我的css移动到ClientBundle作为CssResource,因为它声称是最好的做法,但是有一个问题。它可以使用element-ID和element-name,但不能使用类名。所以当我有
时它会起作用div{
color: red;
}
#whatever_id{
color: black;
}
但是如果我添加一个带有点(。)的类名作为
div{
color: red;
}
#whatever_id{
color: black;
}
.whatever_classname{
color: green;
}
然后我得到了以下的激情
onModuleLoad() threw an exception
Exception while loading module com.acatime.edutime.client.edutime. See Development Mode for details.
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:411)
at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.ExceptionInInitializerError
at com.acatime.edutime.client.edutime.onModuleLoad(edutime.java:29)
... 9 more
Caused by: java.lang.RuntimeException: Deferred binding failed for 'com.acatime.edutime.client.resources.GeneralResources' (did you forget to inherit a required module?)
at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:53)
at com.google.gwt.core.shared.GWT.create(GWT.java:72)
at com.google.gwt.core.client.GWT.create(GWT.java:86)
at com.acatime.edutime.client.resources.GeneralResources.<clinit>(GeneralResources.java:11)
... 10 more
Caused by: com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries)
at com.google.gwt.dev.shell.ModuleSpace.rebind(ModuleSpace.java:610)
at com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate(ModuleSpace.java:470)
at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:49)
... 13 more
知道我错过了什么???
答案 0 :(得分:1)
包含下划线的类名曾经存在问题。尝试没有下划线的类名。
答案 1 :(得分:0)
感谢Andrei和Braj的回答。我找到了我所缺少的东西。
我从一开始就没有得到它的是我正在添加类名如下:
myWidget.setStyleName("whateverClassname);
这显然是问题所在。看起来当你通过ClientBundle / CssResource使用CSS时,你必须指定类名如下:
myWidget.setStyleName(MyResources.INSTANCE.myCss()whateverClassname());
而da da,突然一切正常工作:)我希望现在这是为GWT应用程序添加样式的正确方法。我是GWT的新手,并试图遵循GWT网站推荐的最佳实践。