GWT-css中的常量问题

GWT-css中的常量问题,css,gwt,constants,Css,Gwt,Constants,我是GWT的新手;我正在构建一个小样本应用程序。我有几个CSS文件。我能够成功地使用ClientBundle和CssResource为UiBinder脚本中定义的元素分配样式 现在我想更进一步,使用@defcss规则引入CSS常量。当我定义一个常量并在同一个CSS文件中使用它时,@def非常有效。但是,我不能在另一个CSS文件中使用它。当我尝试使用@eval规则来计算现有常量时,编译器抛出一个执行选项:“不能对非静态方法进行静态引用” 下面是我尝试做的一个例子: ConstantStyle.cs

我是GWT的新手;我正在构建一个小样本应用程序。我有几个CSS文件。我能够成功地使用ClientBundle和CssResource为UiBinder脚本中定义的元素分配样式

现在我想更进一步,使用@defcss规则引入CSS常量。当我定义一个常量并在同一个CSS文件中使用它时,@def非常有效。但是,我不能在另一个CSS文件中使用它。当我尝试使用@eval规则来计算现有常量时,编译器抛出一个执行选项:“不能对非静态方法进行静态引用”

下面是我尝试做的一个例子:

ConstantStyle.css ConstantStyle.java MyStyle.css MyStyle.java MyResources.java
提前谢谢

我在代码中这样做的方式是简单地引用
MyStyle.css
中的常量,即:

.myClass {background-color: BACKGROUND;}
我不完全清楚为什么会这样,可能是因为两个CSS文件都是按正确的顺序注入的。否则,我尝试在
MyStyle.css
的顶部添加以下内容,它也可以工作:

@import url("ConstantStyle.css");
ClientBundle
中的
@Source
注释中添加
“ConstantStyle.css”
,如下所示:

package abc;
import ...;
interface MyResources extends ClientBundle {
    @Source("ConstantStyle.css")
     ConstantStyle constantStyle();

    @Source({"ConstantStyle.css", "MyStyle.css"})
    MyStyle myStyle();
}
它的作用与MyStyle.css中的
@import“ConstantStyle.css”
相同(我相信GWT忽略了
@import


您不需要@eval.

小语法错误-需要在@Source指令中使用“{”和“}”来定义两个css文件…例如:@Source({“path/to/definitions.css”,“foo.css”}),如中所述(我已发送了一个编辑请求以应用前面评论中建议的更改)
package abc;
import ...;
interface ConstantStyle extends cssResource {
         String myClass;
}
package abc;
import ...;
interface MyResources extends ClientBundle {
    @Source("ConstantStyle.css")
     ConstantStyle constantStyle();

    @Source("MyStyle.css")
    MyStyle myStyle();
}
.myClass {background-color: BACKGROUND;}
@import url("ConstantStyle.css");
package abc;
import ...;
interface MyResources extends ClientBundle {
    @Source("ConstantStyle.css")
     ConstantStyle constantStyle();

    @Source({"ConstantStyle.css", "MyStyle.css"})
    MyStyle myStyle();
}