我有一个提供png和svg图像的servlet。有了png,我没有问题:
Image image = new Image(GWT.getHostPageBaseURL() + token);
但是如何让svg上班?我已经将“lib-gwt-svg”添加到我的依赖项中。有一个SVGImage类:
SVGImage svg = new SVGImage(OMSVGParser.parse(???));
解析需要一个字符串。有没有办法从URL加载原始字符串?
或者如何让它工作(有没有“lib-gwt-svg”)?
更新 对安德烈·沃尔金来说:他指出它应该与“图像”配合使用它(我只需将mime类型更改为“image / svg + xml”)。但是svg-image中的脚本不能以这种方式工作(看起来图像呈现为普通的位图图像)。 我需要将图像呈现为svg(带脚本)。
答案 0 :(得分:4)
如果使用URL加载图像,则根本不需要任何库。而且您不需要servlet来提供它们。只需将图像添加到/ war / images文件夹即可。然后,在您的GWT代码中:
Image image = new Image();
image.setUrl("images/myImage.svg");
myPanel.add(image);
您可能希望为不支持svg文件的浏览器添加一些逻辑。
答案 1 :(得分:0)
我找到了一个没有任何外部库(如Andrei的解决方案)的解决方案,但也保持了嵌入式脚本的工作。我使用了来自here的信息 - 我使用HTMLPanel并通过“RequestBuilder”加载图像:
String url = GWT.getHostPageBaseURL() + link.getToken();
RequestBuilder rB = new RequestBuilder(RequestBuilder.GET, url);
rB.setCallback(new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response) {
//create Widget
chartImage = new HTMLPanel(response.getText());
//add to layout
layout.add(chartImage);
}
@Override
public void onError(Request request, Throwable exception) {
// TODO Auto-generated method stub
}
});