虽然我现在使用Wicket已有几年了,但我仍然不明白在这种情况下使用哪种链接组件:
我想展示一个无状态的可收藏页面,该页面列出了数据库中的几个条目,这些条目是该可收藏页面的几个页面参数的查询。这些条目中的每一个都应该是可删除的(使用普通的确认对话框)。在确认模式“你确定要删除此项目”对话框后,它应该重定向到相同的无状态可书签页面,因此相同的页面参数会导致再次查询数据库,现在显示删除后的条目。
我已使用DataView
创建了一个ListDataProvider
组件来显示条目。删除链接的创建方式如下:
... new ListDataProvider<>(entries) {
public void populateItem(Item<MyEntry> item) {
final MyEntry entry = item.getModelObject();
...
item.add(new Link<Long>("delete", Model.of(entry.getId())) {
public void onClick() {
// todo: delete
System.out.println("delete " + getModelObject().longValue());
getRequestCycle().setResponsePage(MyPage.class, getPageParameters());
}
}
...
}
不幸的是,每次“删除”点击都会增加页面版本号。
答案 0 :(得分:2)
如果网页中的网址已经有了pageId,则首先不无状态。
在您的情况下,您要求StatelessLink
。但您必须确保不要在页面中使用任何其他有状态组件。你可以使用wicket-devutils&#39; StatelessChecker
听众找到其他有状态的东西。