Wicket& CSS资源

时间:2012-04-16 21:52:28

标签: java css wicket

我一直在四处寻找,我找不到将我自己的CSS添加到Wicket网站项目的虚拟指南。但在我开始之前......我对正确的java开发相当新,所以当我说“Dummy的指南”时,我的意思是真的!对我这里简单明了的解释非常感谢!

我在这里开始使用本指南(http://wicket.apache.org/start/quickstart.html),并且运行正常。接下来,我想添加自己的CSS并开始搞乱它。而且我无处可逃。主要是因为我不知道如何在java中做到这一点(我来自C#/ asp.net背景)。

无论如何,那些了解Apache Wicket的人都会知道这一点,但快速入门的来源会在如下project/src/main/java/com/xyz

之类的地方创建代码

我认为我可以做的是在这里添加一个CSS文件夹......所以我创建了一个示例CSS,我把它粘在这里:

project/src/main/java/com/xyz/css/conor.css

(containing something real simple like the following)

h2 {
    font-family: tahoma;
}

然后我在homepage.html中删除了Wicket默认css并将其更改为引用我的如下:

<link rel="stylesheet" href="css/conor.css" type="text/css" />

但是我的页面没有注意到conor.css ...显然我做错了什么,但是找不到java假人(也就是我!)的分步指南。

我已经阅读过你需要为eclipse安装web工具的内容。我不知道这对我有什么用处,或者为什么它会指示我的页面使用CSS。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:17)

当Wicket解析标记并试图找到正确的链接时,你必须帮助Wicket理解你的标记。

在您的情况下,您尝试链接到位于Java类路径中的资源。这与Web上下文根(位于src / main / webapp中)不同。类路径资源和Web上下文资源之间的区别在于Wicket负责并控制对类路径资源的访问,并且您的容器(即jetty,tomcat,glassfish等)负责和控制访问Web上下文资源。

例如,当资源属于Wicket的范围时,我们可以用它做各种事情,例如变量替换,压缩,缩小,聚合。这些都是Wicket的一部分。

现在问题就在眼前,因为你没有告诉Wicket链接的资源在它的控制之下,Wicket认为你希望容器能够处理它们。要缓解此问题,您应在<wicket:link>标记周围添加<link>标记。

<head>
    ...
    <wicket:link>
    <link rel="stylesheet" href="css/conor.css" type="text/css" />
    ...
    </wicket:link>
</head>

<wicket:link>标记告诉Wicket查找所附资源并尝试在Java类路径上解析它们。

答案 1 :(得分:3)

一般来说,你应该在project / src / main / webapp / css中添加你的css然后它将被css / conor.css访问

答案 2 :(得分:2)

您可以在您的wicket java页面中加载您的css文件:

@Override
public void renderHead(IHeaderResponse response) {
    response.render(CssHeaderItem.forReference(new CssResourceReference(myCssFile.class, "myCssFile.css")));
}

如果项目中有css文件,最初可以加载。