Wicket - <wicket:link> - 如何将页面放在不同的包中?</wicket:link>

时间:2011-08-23 13:16:22

标签: java wicket

我有一个网络应用程序,它有一个目录结构,如:

/com/myproject/MyPage.java
/com/myproject/MyPage.html
/com/myproject/resources/styles.css
/com/myproject/resources/bg.png

MyPage.html我的代码如下:

<wicket:link>
  <link rel="stylesheet" type="text/css" href="resources/styles.css"/>
</wicket:link>

CSS文件包含url(bg.png)等引用。一切都很好。

然而,我的应用程序现在变得如此之大(到目前为止我有大约15页),我不想将所有页面和HTML放在一个目录中。但是,所有页面都会引用“styles.css”之类的内容。所以我想为各种页面组创建各种包,但仍然有“styles.css”,以及它引用的图像等,在我的源代码树中只存在一次。

我想做点什么:

  • 创建例如/com/myproject/usermanagement/UserManagementStartPage.java
  • 但仍有/com/myproject/resources/styles.css(目的是在所有页面之间共享)
  • HTML仍使用<wicket:link>引用CSS,例如href="../resources/styles.css"
  • 甚至更好,有一个绝对链接到css,例如href="/com/myproject/resources/styles.css(当我将页面从一个包移动到更深/更浅的包时,我不必更改..的数量。)

我在思考正确的方向吗?你会如何处理这个问题?

2 个答案:

答案 0 :(得分:2)

Wicket处理相对于Web应用程序根目录的CSS文件链接。这样,将标记文件移动到更高或更深的位置并不重要。如上所述,还可以包括来自Java代码的样式表 in this article。使用标记继承,您只需将样式表添加到基页,并让您的真实页面继承它。

答案 1 :(得分:2)

您需要以下内容:

<wicket:link>
  <link rel="stylesheet" type="text/css" href="$up$/resources/styles.css"/>
</wicket:link>

org.apache.wicket.settings.IResourceSettings.setParentFolderPlaceholder( “$高达$”)

这样,网址将显示为/com/myproject/usermanagement/$up$/resources/styles.css,Wicket将为您解析父文件夹。