如何在wicket中获取当前页面
我试图创建动态导航链接,其中当前页面链接应突出显示,但我无法获得预期的结果。我正在使用listview显示菜单项,但无法突出显示当前页面链接 请提出必要的修改建议如何在wicket中获取当前页面,wicket,Wicket,我试图创建动态导航链接,其中当前页面链接应突出显示,但我无法获得预期的结果。我正在使用listview显示菜单项,但无法突出显示当前页面链接 请提出必要的修改建议 public class SearchPage extends WebPage implements Serializable { private static final long serialVersionUID = 1L; Logger log = Logger.getLogger(SearchPage.class); pub
public class SearchPage extends WebPage implements Serializable {
private static final long serialVersionUID = 1L;
Logger log = Logger.getLogger(SearchPage.class);
public SearchPage() {
List<HeaderListItems> headerPOJOItems = new ArrayList<HeaderListItems>();
HeaderListItems searchHLI = new HeaderListItems();
searchHLI.setLabel("Search");
searchHLI.setDestPage(SearchPage.class);
headerPOJOItems.add(searchHLI);
HeaderListItems jobsHLI = new HeaderListItems();
jobsHLI.setLabel("Jobs");
jobsHLI.setDestPage(Jobs.class);
headerPOJOItems.add(jobsHLI);
HeaderListItems urlHLI = new HeaderListItems();
urlHLI.setLabel("URL");
urlHLI.setDestPage(URL.class);
headerPOJOItems.add(urlHLI);
HeaderListItems syssettingsHLI = new HeaderListItems();
syssettingsHLI.setLabel("System Settings");
syssettingsHLI.setDestPage(Settings.class);
headerPOJOItems.add(syssettingsHLI);
HeaderListItems usersHLI = new HeaderListItems();
usersHLI.setLabel("Users");
usersHLI.setDestPage(User.class);
headerPOJOItems.add(usersHLI);
HeaderListItems logoutHLI = new HeaderListItems();
logoutHLI.setLabel("Logout");
logoutHLI.setDestPage(WebApp.get().getHomePage());
headerPOJOItems.add(logoutHLI);
add(new ListView("headerlistview", headerPOJOItems) {
@Override
protected void populateItem(ListItem item) {
final HeaderListItems headerlistitems = (HeaderListItems) item
.getModelObject();
log.info("Label: " + headerlistitems.getLabel() + " dest: "
+ headerlistitems.getDestPage());
Link newlink = new Link("newlink") {
@Override
public void onClick() {
setResponsePage(headerlistitems.getDestPage());
}
};
newlink.add(new Label("newlabel", headerlistitems.getLabel()));
newlink.add(new AttributeModifier("class",
new AbstractReadOnlyModel() {
@Override
public Object getObject() {
// TODO Auto-generated method stub
return getPage().getClass().equals(
headerlistitems.getDestPage()
.getClass()) ? "activeitem"
: AttributeModifier.VALUELESS_ATTRIBUTE_REMOVE;
}
}));
item.add(newlink);
}
});
}
公共类SearchPage扩展网页实现可序列化{
私有静态最终长serialVersionUID=1L;
Logger log=Logger.getLogger(SearchPage.class);
公共搜索页(){
List headerPOJOItems=new ArrayList();
HeaderListItems searchli=新的HeaderListItems();
searchli.setLabel(“搜索”);
searchli.setDestPage(SearchPage.class);
添加(searchli);
HeaderListItems jobsHLI=新的HeaderListItems();
jobsHLI.setLabel(“作业”);
jobsHLI.setDestPage(Jobs.class);
总部项目添加(jobsHLI);
HeaderListItems urlHLI=新的HeaderListItems();
urlHLI.setLabel(“URL”);
urlHLI.setDestPage(URL.class);
添加(urlHLI)标题项目;
HeaderListItems syssettingsHLI=新的HeaderListItems();
syssettingsHLI.setLabel(“系统设置”);
syssettingsHLI.setDestPage(Settings.class);
headerPOJOItems.add(syssettingsHLI);
HeaderListItems usersHLI=新的HeaderListItems();
usersHLI.setLabel(“用户”);
usersHLI.setDestPage(User.class);
headerPOJOItems.add(usersHLI);
HeaderListItems logoutHLI=新的HeaderListItems();
logoutHLI.setLabel(“注销”);
logoutHLI.setDestPage(WebApp.get().getHomePage());
添加(logoutHLI)的项目负责人;
添加(新列表视图(“headerlistview”,HeaderProject项目){
@凌驾
受保护的void populateItem(列表项){
最终标题列表项标题列表项=(标题列表项)项
.getModelObject();
log.info(“Label:+headerlistitems.getLabel()+”dest:“
+headerList.getDestPage());
Link newlink=新链接(“新链接”){
@凌驾
公共void onClick(){
setResponsePage(headerList.getDestPage());
}
};
add(新标签(“newlabel”,headerlistitems.getLabel());
添加(新属性修改器(“类”,
新的AbstractReadOnlyModel(){
@凌驾
公共对象getObject(){
//TODO自动生成的方法存根
返回getPage().getClass().equals(
headerlistitems.getDestPage()
.getClass())?“activeitem”
:AttributeModifier.VALUELESS\u ATTRIBUTE\u REMOVE;
}
}));
添加(新链接);
}
});
}
列表是pojo项的列表。我的pojo有两个字段label(字符串)和destPage(类)
我的加价:
<html xmlns:wicket="http://wicket.apache.org">
<head>
<title>Search Page</title>
<link href="css/design.css" type="text/css" rel="stylesheet" />
</head>
<body>
<div id="container">
<div class="header">
<div class="header_tab1">
<p align="center">Logo</p>
</div>
<div class="header_tab2"> </div>
<div class="header_tab3">
<table width="100%">
<tr>
<td wicket:id="headerlistview">
<ul>
<li><a href="#" wicket:id="newlink"><span
wicket:id="newlabel"></span></a></li>
</ul>
</td>
</tr>
</table>
</div>
</div>
</div>
</body>
</html>
搜索页面
徽标
我在属性修改器中使用了一个CSS类activeitem
提前感谢将班级比较更改为:
return getPage().getClass().equals(
headerlistitems.getDestPage()) ? "activeitem" : AttributeModifier.VALUELESS_ATTRIBUTE_REMOVE;
下一步是将导航提取到它自己的面板中,以便您可以在页面中重用它
祝你好运