Wicket visiblity和类切换

Jak*_*han 0 java markup wicket

我正在学习Wicket,现在我正在努力学习如何做侧边栏菜单.

<ul class="nav nav-tabs nav-stacked">
    <li><a wicket:id="linkA">A</a></li>
    <li class="active"><a wicket:id="linkB">B</a></li>
    <li><a wicket:id="linkC">C</a></li>
    <li><a wicket:id="linkD">D</a></li>
    <li><a wicket:id="linkE">E</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

某些用户看不到某些链接(根据用户的角色),当我在链接所在的页面上时,我想要<li>有类active(如linkB示例中的has).什么是Wicket这样做的方式?

Tom*_*Tom 6

要添加'class ="active"',您只需将其添加到您的Java代码中:

if(...condition...){
  link.add(new AttributeAppender("class", "active");
}
Run Code Online (Sandbox Code Playgroud)

要切换可见性,您只需执行以下操作:

if(...condition...){
  item.setVisible(false);
}
Run Code Online (Sandbox Code Playgroud)

其中item是一个WebMarkupContainer,它通过一个wicket ID连接到其中一个html li-tags(你也可以简单地调用link.setVisible(false),但是列表项目符号点仍会被渲染).