Wicket错误路径:页面不存在'label1':BarPage

时间:2012-11-22 09:13:41

标签: wicket

我想在某些应用程序中声明一些标签label1。我写了以下junit testcase:

wicketTester.assertLabel("label1", "Hello!");

添加标签的页面如下所示:

FooPage.java

public class FooPage extends WebPage {

    public FooPage() {
        add(new Label("label1", "Hello!"));
    }
}

,相应的html页面如下所示: FooPage.html

<body>
..
...

<div wicket:id="label1"></div>
..
<body>

当有人点击链接时,我会显示标签label1

<a wicket:id="fooId" href="FooPage">Foo</a>

在以下页面中:

<html xmlns:wicket="http://wicket.apache.org/">
<body>
    <wicket:panel>

            <div class="xxx">
                <a wicket:id="fooId"
                    href="FooPage">Foo</a>
            </div>
    </wicket:panel>
</body>
</html>

当我运行junit Test时,出现以下错误:

path: 'label1' does not exist for page: BarPage

我的问题是:如何为标签label1找到正确的路径?

2 个答案:

答案 0 :(得分:1)

您是否在测试中点击了“fooId”链接(使用wicketTester.clickLink)?

答案 1 :(得分:0)

您可以找到这样的组件路径

修改 WicketApplication

在Wicket 7中

getDebugSettings().setComponentPathAttributeName("component_path");  

在Wicket 6岁或以上

getDebugSettings().setOutputComponentPath(true);

用法示例:

@Override
public RuntimeConfigurationType getConfigurationType() {
    if (Boolean.valueOf(getProperty("development.mode"))) {
        //show component path in html tag
        getDebugSettings().setComponentPathAttributeName("component_path");
        return RuntimeConfigurationType.DEVELOPMENT;
    }       
    return RuntimeConfigurationType.DEPLOYMENT;
}

如果您检查组件,请从Web浏览器中找到与此类似的内容:

<input type="text" value="" component_path="pageContent_form_username" name="username" id="username3" >

请不要忘记使用(:)冒号更改所有下划线:

pageContent_form_username - &gt; pageContent:形式:用户名