我在我的webaplication中使用外部图像,一切都很好,直到我想在那里添加动画gif,gif加载,但它没有动画。
Java代码:
File sourceimage = new File("loading_img.gif");
try {
final BufferedDynamicImageResource r = new BufferedDynamicImageResource("GIF");
r.setImage(ImageIO.read(sourceimage));
add(new Image("gif", r));
} catch (Exception e) {
e.printStackTrace();
}
HTML:
<img wicket:id="gif"/>
编辑:
尝试了马丁克的建议,gif仍然没有动画
try {
final BufferedDynamicImageResource r = new BufferedDynamicImageResource("GIF"){
@Override
protected void setResponseHeaders(AbstractResource.ResourceResponse data,
IResource.Attributes attributes){
super.setResponseHeaders(data, attributes);
data.setContentType("image/gif");
}
};
r.setImage(ImageIO.read(sourceimage));
add(new Image("gif", r));
} catch (Exception e) {
e.printStackTrace();
}
答案 0 :(得分:1)
问题是不会自动设置内容类型。
您需要覆盖org.apache.wicket.request.resource.AbstractResource #setResponseHeaders()并使用via resourceResponse.setContentType(String)
进行设置。
也许这应该由Wicket在org.apache.wicket.request.resource.DynamicImageResource中自动完成,因为它知道格式(&#34; png&#34;或者&#34; gif&#34;如在你的情况)。请在Wicket的JIRA上申请此改进!谢谢!