代码之家  ›  专栏  ›  技术社区  ›  Ondra Žižka David Lilljegren

Wicket和SVG-是否存在任何组件?

  •  2
  • Ondra Žižka David Lilljegren  · 技术社区  · 16 年前

    svg dom可以用javascript控制,因此可以启用ajax……我想知道wicket是否有一些svg组件。如果Wicket可以 xml/svg 作为输出格式。

    快速搜索显示只有 question at Code Ranch .

    2 回复  |  直到 11 年前
        1
  •  6
  •   nschum Solin    11 年前

    我不知道你是否还需要wicket svg库。但我已经在github启动了一个项目,为svg提供wicket组件。

    请点击以下链接: wicket-svg

        2
  •  1
  •   Don Roby    16 年前

    我不知道有什么组件,但wicket绝对可以 xml/svg 作为输出格式,制作呈现svg的页面非常简单。

    简单的示例代码:

    public class Rectangle extends Page {
    
        @Override
        public String getMarkupType() {
            return "xml/svg";
        }
    
        @Override
        protected void onRender(MarkupStream markupStream) {
            PrintWriter writer = new PrintWriter(getResponse().getOutputStream());
            writer.write(makeRectangleSVG());
            writer.flush();
            writer.close();
        }
    
        private String makeRectangleSVG() {
            return "<?xml version=\"1.0\" standalone=\"no\"?>\n" +
                "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n" +
                "\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n" +
                "\n" +
                "<svg width=\"100%\" height=\"100%\" version=\"1.1\"\n" +
                "xmlns=\"http://www.w3.org/2000/svg\">\n" +
                "\n" +
                "<rect width=\"300\" height=\"100\"\n" +
                "style=\"fill:rgb(0,0,255);stroke-width:1;\n" +
                "stroke:rgb(0,0,0)\"/>\n" +
                "\n" +
                "</svg> ";
        }
    }
    

    如果您将其映射为一个可书签页面并调用它,它确实会显示一个可爱的蓝色矩形,如硬编码的svg(从w3schools示例中窃取的)所示。当然,您可以轻松地对页面进行参数化并生成svg,而不只是发送一个常量字符串…

    我怀疑基于 object 标记以便SVG可以显示为HTML页面的一部分,而不是像这样显示整个页面,但我还没有尝试这样做。