wicket图像路径无需重写

时间:2011-06-24 10:16:33

标签: image url path rewrite wicket

我正在尝试上传和显示图片。 我获取文件,将其写入glassfish应用程序服务器的docroot,然后

    Image image = new Image("myimage","images/task.gif");

但我得到<img wicket:id="myimage" src="resources/wickcat.MyPage/images/task.gif" />

wicket有没有办法改写我的src路径?即使我使用http:// ....启动src,它也会写资源/ wickcat.MyPage / http:// ...这根本没有意义。 我只需要写“images / task.gif”。 有什么想法吗?

2 个答案:

答案 0 :(得分:6)

有两种方法可以做到这一点。

  1. 使用<img src="images/task.gif" />。如果您不需要引用类中的组件,那就是这样。

  2. 使用ContextImage image = new ContextImage("myimage", "images/task.gif");。如果您使用ContextImage组件,则源将相对于Context根,您甚至可以输入模型作为图像的相对路径。

答案 1 :(得分:1)

Image类假定图像是位于类路径中的资源。

您可以将WebMarkupContainerSimpleAttributeModifier

一起使用
WebMarkupContainer img = new WebMarkupContainer("myimage")
    .add(new SimpleAttributeModifier("src", "/images/task.gif"));

它将按原样输出字符串,因此您可以完全控制。

如果在整个应用程序中多次使用它,我建议您创建一个封装此行为的组件。像

这样的东西
public class MyImage extends WebMarkupContainer {
    public MyImage(String id, String path) {
        add(new SimpleAttributeModifier("src", path));
    }
}