Wicket目录结构

时间:2009-09-11 13:39:42

标签: java image directory structure wicket

我正在试图找出wicket的目录结构。我根本得不到它! 假设我想加载带有images / logo.gif或类似内容的图像。我在哪里放置图像文件夹? 请在这件事上给予我帮助! ;)

3 个答案:

答案 0 :(得分:7)

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

因此,如果您的SomePage extends WebPage位于包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相关!)甚至可以自动处理缓存。

答案 1 :(得分:4)

您可以直接在项目的根目录中创建图像文件夹。即您的war存档必须包含META-INF,WEB-INF,根级别的图像。或者在servlet容器中的web app文件夹的根目录中。然后在你的html中引用它,如

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

如果您正在引用java代码中的图像,则必须使其相对于您的servlet路径。它可以通过

通过servlet上下文获取
class MyPage extends WebPage {
  public MyPage() { 
     final ServletContext ctx = ((WebApplication) getApplication()).getServletContext();
     File imgFile = new File(ctx.getRealPath("/images/pic1.jpg"));
   }
}

答案 2 :(得分:-2)

在Netbeans中,它位于源包tld.domain.project下 在那里你创建一个名为images的新文件夹,它可以正常工作