使用继承时Wicket 7链接/标签错误
有了Wicket 7,我正在开发一个应用程序,它使用一个基本页面作为其他页面扩展的模板 在基本页面上,我希望有一个标签和一个链接,根据用户是否经过身份验证而变化 以下是我的BasePage.html:使用继承时Wicket 7链接/标签错误,wicket,Wicket,有了Wicket 7,我正在开发一个应用程序,它使用一个基本页面作为其他页面扩展的模板 在基本页面上,我希望有一个标签和一个链接,根据用户是否经过身份验证而变化 以下是我的BasePage.html: <div wicket:id="chromeMenu">foo</div> <div> <h2 wicket:id="userGreeting"></h2> <h2><a href
<div wicket:id="chromeMenu">foo</div>
<div>
<h2 wicket:id="userGreeting"></h2>
<h2><a href="#" wicket:id="loginLink"><span wicket:id="loginLabel"></span></a> </h2>
</div>
<wicket:child/>
主页扩展了基本页面
HomePage.html
<wicket:extend/>
它指出BasePage.html中的结构是问题的根源
我尝试了一些方法来解决这个问题,但没有成功。我想可能需要一个添加(链接)。添加(标签),但这也不起作用
有没有关于我遗漏了什么的想法?问题就在这里
add(new Link("loginLink") {
@Override
public void onClick() {
setResponsePage(LoginPage.class);
}
});
add(new Label("loginLabel","Test"));
链接应为标签的父级:
link = new Link("loginLink") {
@Override
public void onClick() {
setResponsePage(LoginPage.class);
}
};
link.add(new Label("loginLabel","Test"));
add(link);
额外注意事项:
- 如果setResponsePage()是
onClick()中唯一需要的内容,那么最好使用BookmarkablePageLink
- 使用AbstractLink#setBody(IModel标签)代替Link+标签
- 问题出在
add(new Link("loginLink") {
@Override
public void onClick() {
setResponsePage(LoginPage.class);
}
});
add(new Label("loginLabel","Test"));
链接应为标签的父级:
link = new Link("loginLink") {
@Override
public void onClick() {
setResponsePage(LoginPage.class);
}
};
link.add(new Label("loginLabel","Test"));
add(link);
额外注意事项:
- 如果setResponsePage()是
onClick()中唯一需要的内容,那么最好使用BookmarkablePageLink
- 使用AbstractLink#setBody(IModel标签)代替Link+标签
- 问题出在
add(new Link("loginLink") {
@Override
public void onClick() {
setResponsePage(LoginPage.class);
}
});
add(new Label("loginLabel","Test"));
链接应为标签的父级:
link = new Link("loginLink") {
@Override
public void onClick() {
setResponsePage(LoginPage.class);
}
};
link.add(new Label("loginLabel","Test"));
add(link);
额外注意事项:
- 如果setResponsePage()是
onClick()中唯一需要的内容,那么最好使用BookmarkablePageLink
- 使用AbstractLink#setBody(IModel标签)代替Link+标签
- 问题出在
add(new Link("loginLink") {
@Override
public void onClick() {
setResponsePage(LoginPage.class);
}
});
add(new Label("loginLabel","Test"));
链接应为标签的父级:
link = new Link("loginLink") {
@Override
public void onClick() {
setResponsePage(LoginPage.class);
}
};
link.add(new Label("loginLabel","Test"));
add(link);
额外注意事项:
- 如果setResponsePage()是
onClick()中唯一需要的内容,那么最好使用BookmarkablePageLink
- 使用AbstractLink#setBody(IModel标签)代替Link+标签
- 错误消息说明了一切
最后一个原因:在[Link]中找不到id为“loginLabel”的组件
[组件id=loginLink]]
应为:“loginLink:loginLabel”。
找到的名称类似:“loginLabel”
Wicket希望Java代码中的组件层次结构与您在HTML中编写的相同。在BasePage.html中,您有:
<h2><a href="#" wicket:id="loginLink"><span wicket:id="loginLabel"></span></a> </h2>
错误消息说明了一切 最后一个原因:在[Link]中找不到id为“loginLabel”的组件 [组件id=loginLink]] 应为:“loginLink:loginLabel”。 找到的名称类似:“loginLabel” Wicket希望Java代码中的组件层次结构与您在HTML中编写的相同。在BasePage.html中,您有:
<h2><a href="#" wicket:id="loginLink"><span wicket:id="loginLabel"></span></a> </h2>
错误消息说明了一切 最后一个原因:在[Link]中找不到id为“loginLabel”的组件 [组件id=loginLink]] 应为:“loginLink:loginLabel”。 找到的名称类似:“loginLabel” Wicket希望Java代码中的组件层次结构与您在HTML中编写的相同。在BasePage.html中,您有:
<h2><a href="#" wicket:id="loginLink"><span wicket:id="loginLabel"></span></a> </h2>
错误消息说明了一切 最后一个原因:在[Link]中找不到id为“loginLabel”的组件 [组件id=loginLink]] 应为:“loginLink:loginLabel”。 找到的名称类似:“loginLabel” Wicket希望Java代码中的组件层次结构与您在HTML中编写的相同。在BasePage.html中,您有:
<h2><a href="#" wicket:id="loginLink"><span wicket:id="loginLabel"></span></a> </h2>