我是第一次使用GWT ClientBundle。我写了扩展它的接口(interface),下面是代码:
package edu.etf.fuzzy.client.login;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.ImageResource;
public interface Resources extends ClientBundle {
@Source("logo_federacija.jpg")
ImageResource logo();
@Source("shim.gif")
ImageResource shim();
}
我的问题是:如何确定这些资源(在本例中为图像)的确切位置。我应该把它们:
a)与接口(interface)位于同一目录-(难看)?
b)在某些永远无法更改的特定目录中?
c)在我想要的目录中,但是应该有机制来指定它-(会很棒)吗?
谢谢。
最佳答案
我通常会创建一个新的资源包(com.example.project.resource
),然后将ClientBundle
接口(interface)和适当的资源放在那里(一起,放在一个目录中)-它是一个Java文件加上一堆图像,不需要进一步分离,恕我直言。
至于资源的路径-您可以通过@Source("path")
批注传递它们。例如,如果您在ClientBundle
中有com.example.project.resource
接口(interface),在com.example.project.images
中有图像,则可以编写@Source("../images/shim.gif")
。您可能使用了绝对路径,但是请确保将它们存储在静态变量中并在资源之间共享,以便可以轻松地覆盖它;)