获取错误找不到“html”类型的标记

时间:2011-07-12 14:05:40

标签: java wicket wicket-1.4

我正在扩展一个SomeDetailPage类,它扩展了SomePage,而SomePage又扩展了WebPage。现在这个SomeDetailPage工作正常,没有问题。但是我创建了一个新类并扩展了它的一些功能,当我尝试部署它时,我收到了错误 org.apache.wicket.markup.MarkupNotFoundException:找不到组件'AboutUs'的'html'类型的标记。为org.apache.wicket.util.resource启用调试消息以获取所有尝试的文件名列表:[Page class = AboutUs,id = 11,version = 0]。我已检查html是否未复制到具有AboutUs.class的文件夹中,但它在那里,检查命名是否不同,没有用。我无法找到为什么我无法运行它甚至无法找到原因,以至于我至少可以尝试一种解决方法。我正在使用Wicket 1.4.8

2 个答案:

答案 0 :(得分:5)

我不确定您是否已经这样做了,但是您需要为新类定义标记,并且还需要指定标记层次结构。 因此,如果您的新新类名为AboutUs.java,那么AboutUs.html将包含 -

<?xml version="1.0" encoding="UTF-8"?>
<wicket:extend xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">

    <body ...>
    ...
    </body>
</wicket:extend>

您还需要修改SomeDetailPage的标记,以便在应插入新标记的位置包含以下标记

<wicket:child/>

答案 1 :(得分:3)

你应该使用the maven archetype的wicket,它会让你解决这个问题。

假设您使用maven(您应该使用),源文件夹(如src / main / java)不是资源文件夹(如src / main / resources)。因此,如果您需要将资源从源文件夹复制到输出,则需要将源文件夹添加为pom.xml中的资源文件夹:

<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
    </resources>
</build>