org.apache.wicket.core.request.handler.ComponentNotFoundException:
Component 'navbar:navbarAvatar:navAvatarPanel:4:navAvatarArea:menuPanel:menuItem:menuLink' has been removed from page.
下面是我的代码:
navbarpanel.java
public class NavBarPanel extends Panel {
public NavBarPanel(String id) {
super(id);
/* ... */
WebMarkupContainer navBarAvatar = new WebMarkupContainer(NavbarAvatar$wicketId) {
private static final long serialVersionUID = -2447768280463773678L;
@Override
public boolean isVisible() {
return session.isSignedIn();
}
};
List<Panel> avatarMenuItems = new ArrayList<Panel>();
avatarMenuItems.add(new MenuLink(Logout$wicketId, "Logout", WelcomeWebPage.class, menuModel));
/* adding additional links at this point ... */
navBarAvatar.add(new ListView<Panel>("navAvatarPanel", avatarMenuItems) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<Panel> item) {
final Panel panel = item.getModelObject();
item.add(new MenuFragment(panel, "navAvatarArea"));
}
});
this.add(navBarAvatar);
}
}
public class MenuFragment extends Fragment {
private static final long serialVersionUID = 5735397386662232792L;
public MenuFragment(Panel panel, String area) {
super(area, "menuFragment", NavBarPanel.this);
add(panel);
}
}
navbarpanel.html
<wicket:panel>
<!-- ... -->
<div wicket:id="navbarAvatar" class="navbar-avatar">
<ul>
<wicket:container wicket:id="navAvatarPanel">
<wicket:container wicket:id="navAvatarArea"/>
</wicket:container>
</ul>
</div>
<!-- ... -->
<wicket:fragment wicket:id="menuFragment">
<wicket:container wicket:id="menuPanel"></wicket:container>
</wicket:fragment>
</wicket:panel>
public MenuLink(String markupId, String label, Class<? extends Page> page, MenuModel model) {
super("menuPanel");
this.markupId = markupId;
this.page = page;
this.model = model;
this.initComponentTree(label);
}
private void initComponentTree(final String label) {
WebMarkupContainer menuItem = new WebMarkupContainer("menuItem");
Link<Void> menuLink = new Link<Void>("menuLink") {
private static final long serialVersionUID = 1L;
@Override
public void onClick() {
MenuLink.this.menuOnClick(label);
}
};
menuLink.add(new Label("menuLabel", label));
menuLink.setMarkupId(this.markupId);
menuItem.add(menuLink);
this.add(menuItem);
}
<wicket:panel>
<li wicket:id="menuItem">
<a wicket:id="menuLink">
<span wicket:id="menuLabel">[label]</span>
</a>
</li>
</wicket:panel>
我的猜测是http会话已经过期,找不到菜单项,因为isvisible=session.issignedin();
导致整个菜单不存在。
如果是这种情况,那么应该改进Wicket,以提供更好的异常消息,告诉确切找不到哪个组件,而不是请求的组件路径。
附言。建议使用onconfigure(){setVisible(...)}
而不是重写isvisible()
,因为后者在呈现过程中会被多次调用,可能会更慢。
我在每行中都有ajax链接列表。此链接管理自己的行移除处理。用WebMarkupContainer包装的整个列表。通过按下名为next logic 1)item remover from db.2)updated list model 3)target.add(wmc)的链接-将WebMarkupContainer添加到ajax以进行更新 由于list有一个以上的元素,每个remove操作在呈现阶
问题内容: 我目前正在使用iText,我想知道是否可以从PDF文件删除页面? 我已经用阅读器等打开了它,我想先删除一个页面,然后再将其保存回新文件。我怎样才能做到这一点? 问题答案: “删除”页面的“更好”方式正在 这意味着我们只会选择1-5、10-12页,有效地“删除” 6-9页。
问题内容: 我正在使用Selenium WebDriver(ChromeDriver)。我需要在处理后(从DOM模型中)从页面中删除一些元素。 例如,我有以下元素: 如何从浏览器DOM模型中删除? 如何使用Selenium WebDriver在Java中实现它?请举一个例子。 问题答案: 您必须执行JavaScript代码才能进行DOM更改。
我试着从这一页中刮出博彩赔率: https://www.interwetten.com/en/sportsbook/top-leagues?toplinkid=1 现在我得到的输出是: 现在我想提取每个中的团队名,但我不知道如何提取。我尝试使用节点或attrs,但没有效果。
我从Wicket开始,正在做TDD(当然是使用WicketTester) 我在尝试使用标记继承创建公共布局时遇到了一个问题 我查看了包括这一个在内的在线示例。然而,这些示例没有提到如何测试父类。 问题是父类是抽象的。这意味着,无法实例化页面,它会抛出一个异常(这是理所当然的) 我曾想过使用mock或fake类将该类作为常规POJO进行测试,但之后我将无法测试抽象父类中的wicket组件 我考虑的另
所以我计划浏览一下这个网站,这样我就可以得到每个英超球队的阵容数据。有人能帮我怎么做吗?在这个URL下,在英超标题下,我可以看到一系列UI标签中的球队列表。 我还注意到每个队的网址是这样的-https://www.skysports.com/arsenal,在那个页面里,队的链接看起来像-https://www.skysports.com/arsenal-squad. 但非英超球队也是如此。 最初