我正在尝试上传和显示图片。 我获取文件,将其写入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”。 有什么想法吗?
答案 0 :(得分:6)
有两种方法可以做到这一点。
使用<img src="images/task.gif" />
。如果您不需要引用类中的组件,那就是这样。
使用ContextImage image = new ContextImage("myimage", "images/task.gif");
。如果您使用ContextImage
组件,则源将相对于Context根,您甚至可以输入模型作为图像的相对路径。
答案 1 :(得分:1)
Image
类假定图像是位于类路径中的资源。
您可以将WebMarkupContainer
与SimpleAttributeModifier
:
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));
}
}