3

我试图弄清楚检票口的目录结构。我完全不明白!假设我想加载带有 images/logo.gif 或类似内容的图像。我必须将图像文件夹放在哪里?请在这件事上给予我帮助!;)

4

3 回答 3

7

Wicket 通过 OOP 范式促进对整个网页的思考,其中包括资源处理。

因此,如果您SomePage extends WebPage在 package 中myprogram.view.pages,您很可能应该将图像等添加到myprogram.view.pages.assets或其他类似命名的逻辑包),然后通过调用将图像添加到 SomePage 源中

add(new Image("id", new ResourceReference(this.getClass(), "assets/logo.gif")));

这样,您将拥有所有页面、其组件以及相关资产的合理结构(我是唯一一个对人们仍然将所有 CSS 样式都塞进一个巨大的样式表感到恼火的人吗?),这与其他一切都是分离的。

现在是高级部分:对于页面上的静态元素,您很可能不想执行上述操作,因为这显然是一种重量级的方法,您实际上可能希望让设计师决定使用哪个徽标图像。对于这类事情,使用

<wicket:link>
    <img src="images/logo.gif" />
</wicket:link>

直接在标记文件中。wicket:link标签将自动链接指向正确文件的图像资源(路径与SomePage.class!),甚至自动处理缓存。

于 2009-09-12T20:50:45.607 回答
4

您可以直接在项目的根目录中创建图像文件夹。即您的战争档案必须包含根级别的 META-INF、WEB-INF、图像。或者在 servlet 容器中的 Web 应用程序文件夹的根目录中。然后在你的html中引用它

<img src="images/pic1.jpg"/>

如果您从 java 代码中引用图像,则必须使其相对于您的 servlet 路径。它可以通过 servlet 上下文访问

类 MyPage 扩展 WebPage {
  公共我的页面(){
     final ServletContext ctx = ((WebApplication) getApplication()).getServletContext();
     文件 imgFile = new File(ctx.getRealPath("/images/pic1.jpg"));
   }
}
于 2009-09-12T10:24:46.117 回答
-2

在 Netbeans 中,它位于 Source Packages tld.domain.project 下,在那里您创建了一个名为 images 的新文件夹,它可以工作

于 2009-09-11T13:57:46.150 回答