页面中外部资源的GIF不是apache wicket Web应用程序中的动画

时间:2016-10-12 12:55:41

标签: java web-applications wicket gif wicket-6

我在我的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();
      }

1 个答案:

答案 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上申请此改进!谢谢!